1、一個(gè)#的作用一個(gè)#的作用就是把后面的參數(shù)當(dāng)做一個(gè)字符串,也就是說等同于把后面的宏變量加上" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識(shí) > 小知識(shí):C語言宏定義中#和##符號(hào)的用法

小知識(shí):C語言宏定義中#和##符號(hào)的用法

時(shí)間:2023-01-31 09:36:01 | 來源:建站知識(shí)

時(shí)間:2023-01-31 09:36:01 來源:建站知識(shí)

在某些C語言代碼中,有時(shí)我們可能會(huì)看到宏定義中帶有#、##,這些符號(hào)有特殊的作用。下面,我們用幾個(gè)簡單的例子來說明一下。

1、一個(gè)#的作用

一個(gè)#的作用就是把后面的參數(shù)當(dāng)做一個(gè)字符串,也就是說等同于把后面的宏變量加上雙引號(hào):

運(yùn)行上述代碼,可以得到輸出:Hello world 1Hello world 2這說明 #define PRINT(NAME) printf(#NAME)這個(gè)宏,等同于把NAME加上了雙引號(hào)“”,即替換成了“NAME”,所以,第一個(gè)PRINT可以直接把括號(hào)內(nèi)的內(nèi)容打印出來。有些地方會(huì)提到#@符號(hào),可以把后面的宏變量字符化,也就是說加上單引號(hào)’’,但是不推薦使用這個(gè)符號(hào),主要是很多平臺(tái)下都不支持。

2、兩個(gè)##的作用

兩個(gè)##是連接符,即把兩個(gè)宏變量拼接到一起,看下面的例子:

定義了兩個(gè)宏LINK和POWER,LINK直接把兩個(gè)宏變量拼接起來,所以n等于1234;POWER把兩個(gè)宏變量和e順次拼接,所以n2等于2e3,也就是等于2000。

【嵌入式物聯(lián)網(wǎng)單片機(jī)學(xué)習(xí)資料】整理了全套精華學(xué)習(xí)資料,除了教程外,還有一些大廠面經(jīng)+筆試面試題,開源共享給大家。

點(diǎn)擊加V自?。?/b>

3、注意事項(xiàng)

#和##在宏定義中使用時(shí),它后面的參數(shù)如果也是一個(gè)宏,那么是不會(huì)展開的。如下面的例子:

這段代碼是會(huì)編譯報(bào)錯(cuò)的,LINK(A,B)這句只會(huì)展開成AB,而不會(huì)再往下一層把A、B也展開成12、34。由于AB是未定義的,所以編譯報(bào)錯(cuò)。解決辦法是再定義一個(gè)宏,做一個(gè)中間轉(zhuǎn)換:

定義一個(gè)_LINK(AA,BB)的宏做中間轉(zhuǎn)換,就能正常把LINK(A,B)展開_LINK(A,B),最終展開成1234。好了,本節(jié)的內(nèi)容就分享到這了,希望這篇文章能對(duì)大家有所幫助。END

來源:小白白學(xué)電子

原文鏈接:小知識(shí):C語言宏定義中#和##符號(hào)的用法
轉(zhuǎn)載自:嵌入式微處理器
文章來源于單片機(jī)與嵌入式
版權(quán)聲明:本文來源網(wǎng)絡(luò),免費(fèi)傳達(dá)知識(shí),版權(quán)歸作者所有,如涉及作品版權(quán)問題,請(qǐng)聯(lián)系我進(jìn)行刪除。

關(guān)鍵詞:符號(hào),知識(shí),語言,定義

74
73
25
news
  • 網(wǎng)站
  • 營銷
  • 設(shè)計(jì)
  • 運(yùn)營
  • 優(yōu)化
  • 效率
  • 專注
  • 電商
  • 方案
  • 推廣
為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉