宏定義的名稱,是C語言標(biāo)識(shí)符的一種,和函數(shù)名,變量名的命名規(guī)則是一樣的,只允許使用數(shù)字,字母,下劃線,且不能以數(shù)字開頭。

我們提供的服務(wù)有:成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、昭化ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的昭化網(wǎng)站制作公司
所以宏名是不可以有括號(hào)和分號(hào)的。
另外,在C語言編程中,一般約定宏名用大寫字母加下劃線組成,而避免使用小寫字母。這一條并非是C語言規(guī)范強(qiáng)制要求,而是編程時(shí)的一種習(xí)慣。
也就是說,宏定義my_print是合法的,可以被C語言編譯器接收,但一般書寫習(xí)慣更傾向于寫作MY_PRINT。
這樣約定的好處是,當(dāng)遇見全部為大寫字母和下劃線組成的標(biāo)識(shí)符時(shí),就可以認(rèn)作是宏定義了。
這個(gè)加分號(hào)是因?yàn)樗且粋€(gè)語句啊
即BLUE,RED是分別一個(gè)語句啊,當(dāng)然要加分號(hào),這不是#define后加分號(hào)
是宏定義展開后加分號(hào)
最后一個(gè)沒加分號(hào),是因?yàn)镚REEN;后加了分號(hào),所以沒加
宏定義要看你怎么用了。
例如#define NEWLINE printf("\n")
你在用的時(shí)候就要把NEWLINE當(dāng)作是一條語句或函數(shù)后面要加分號(hào)才可以。
若#define NEWLINE printf("\n");
那你在使用這個(gè)宏的時(shí)候只要寫NEWLINE就可以了。
PS.如果你宏定義中有分號(hào),使用的時(shí)候加不加分號(hào)都行,因?yàn)槎嗟哪莻€(gè)分號(hào)可以認(rèn)為是空語句。但是宏定義沒有加分號(hào),使用宏的時(shí)候就要記著加分號(hào)。所以你測(cè)試時(shí)只把宏定義的分號(hào)去掉了,肯定會(huì)報(bào)某個(gè)語句之前parse錯(cuò)誤
分號(hào)是C語言一條語句結(jié)束的標(biāo)識(shí),宏定義可以是一條完整的語句,也可以是一條語句的一部分,還可以是多條語句組成。所以不一定要用分號(hào)結(jié)束,而是要根據(jù)實(shí)際情況具體判斷是否要用分號(hào)。
在定義宏時(shí),如果一行寫入的數(shù)據(jù)太長(zhǎng),會(huì)影響閱讀,這時(shí)可以在需要換行的地方加入反斜杠(\),然后在\后換行。
比如
#define
output(x)
printf("the
var's
\
value
is
%d",\
x)
和寫作
#define
output(x)
printf("the
var's
value
is
%d",
x)
是沒有區(qū)別的。
網(wǎng)頁名稱:c語言宏函數(shù)分號(hào) c語言 宏 函數(shù)
轉(zhuǎn)載來源:http://www.chinadenli.net/article46/dooighg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、域名注冊(cè)、虛擬主機(jī)、網(wǎng)站導(dǎo)航、網(wǎng)站排名、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)