GNU Make(5) - 變數make的變數有四種類型:=   -> simply expanded variable,類似常數定義=    -> recursively expanded variable,類似變數定義酒店兼職?=  -> conditional variable assignment operator,如果沒有值,才賦值+=  -> append operator,附加文字到字串裡直接以範例來說明:# A basic makefile for 酒店打工"test"NUM = 1CONST_NUM := $(NUM) VARIABLE_NUM = $(NUM)NUM = 2CONDITIONAL_NUM = $(NUM)CONDITIONAL_NUM ?= 3APPEND_NUM += $(NUM)APPEND_NUM += 10const_and_variable: 買房子     @printf " constant:%s\n variable:%s\n conditional:%s\n " $(CONST_NUM) $(VARIABLE_NUM) $(CONDITIONAL_NUM)    房屋貸款 @echo $(APPEND_NUM)執行後的結果:[root@hughes Test]# make constant:1 variable:2 conditional:2 2 10說明:1.這裡可以看出CONST_NUM在一開始設定為NUM=1買屋的值,後來設定NUM=2,最後印出來為1,這是因為CONST_NUM的值在一開始就已經設為1了。2.而VARIABLE_NUM在一開始設定為NUM=1的值,後來設定NUM=2,最後印出來為2,這是因為VARIABLE_NUM景觀設計的值是make在最後要執行時才對他進行求值的動作,故會得到2的結果。3.CONDITIONAL_NUM一開始設定為NUM=2的值,再使用?=進行運算,最後印出來的結果為2,這是因為CONDITIONAL_NUM此時裡酒店經紀面已經有值了,如果沒有去設定NUM=2的值給CONDITIONAL_NUM的話,那麼印出來的結果就會是3。再補充一點,假設我們改成下面的片段程式CONDITIONAL_NUM = CONDITIONAL_NUM ?= 3那麼執行的酒店工作結果會是 conditional:2這是因為雖然上面第二行的意是就是設CONDITIONAL_NUM為空,此時它已有為空的值,並不是沒有賦值的意思!4.APPEND_NUM就和c/c++裡的+=是一樣的意思,只不過房屋貸款它指的是字串,並非數字。要注意的是,在相加時,中間會自動產生一個空格。


.msgcontent .wsharing ul li { text-indent: 0; }



分享

Facebook
酒店兼職Plurk
YAHOO!

創作者介紹

地中海

rz69rzaotv 發表在 痞客邦 PIXNET 留言(0) 人氣()