【C語(yǔ)言進(jìn)階】宏定義里面使用#define會(huì)怎么樣?
這個(gè)問題,學(xué)過C語(yǔ)言的你,了解過嗎?
1 問題描述
**大家都知道在C語(yǔ)言中,使用 **#define 進(jìn)行宏定義,那么如果宏定義里面又出現(xiàn) #define 呢?
這是宏定義的嵌套寫法嗎?
這種寫法有沒有問題?
2 問題驗(yàn)證
為此,我們寫一段測(cè)試代碼驗(yàn)證下:
?
#include
?
#define TEST_MACRO_1 100
#define TEST_MACRO_2 #define xxx
?
int main(int argc, const char *argv[])
{
printf("test = %d\\\\\\\\n", TEST_MACRO_2);
?
return 0;
}
我們編譯運(yùn)行下看看:

**注意看,這里的宏定義壓根就是 ** 語(yǔ)法錯(cuò)誤 ,也就是說在C語(yǔ)言里面就不支持宏定義的定義體里面又 #define 這樣的字眼。
3 總結(jié)
- **C語(yǔ)言中使用 **#define 定義一個(gè)宏定義;
- **但是宏定義的定義體里面,不能再次出現(xiàn) **#define 這種關(guān)鍵字,否則將會(huì)報(bào)語(yǔ)法錯(cuò)誤。
4 更多分享
[架構(gòu)師李肯]
架構(gòu)師李肯 ( 全網(wǎng)同名 ),一個(gè)專注于嵌入式IoT領(lǐng)域的架構(gòu)師。有著近10年的嵌入式一線開發(fā)經(jīng)驗(yàn),深耕IoT領(lǐng)域多年,熟知IoT領(lǐng)域的業(yè)務(wù)發(fā)展,深度掌握IoT領(lǐng)域的相關(guān)技術(shù)棧,包括但不限于主流RTOS內(nèi)核的實(shí)現(xiàn)及其移植、硬件驅(qū)動(dòng)移植開發(fā)、網(wǎng)絡(luò)通訊協(xié)議開發(fā)、編譯構(gòu)建原理及其實(shí)現(xiàn)、底層匯編及編譯原理、編譯優(yōu)化及代碼重構(gòu)、主流IoT云平臺(tái)的對(duì)接、嵌入式IoT系統(tǒng)的架構(gòu)設(shè)計(jì)等等。擁有多項(xiàng)IoT領(lǐng)域的發(fā)明專利,熱衷于技術(shù)分享,有多年撰寫技術(shù)博客的經(jīng)驗(yàn)積累,堅(jiān)信【知識(shí)改變命運(yùn),技術(shù)改變世界】!
-
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
145147 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4413瀏覽量
67217 -
宏定義
+關(guān)注
關(guān)注
0文章
51瀏覽量
9383 -
define
+關(guān)注
關(guān)注
0文章
16瀏覽量
4098
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言中實(shí)現(xiàn)函數(shù)宏的三種方式
單片機(jī)c語(yǔ)言中定義字節(jié)怎么定義?
請(qǐng)問如何實(shí)現(xiàn)C語(yǔ)言訪問MCU寄存器?
如何用好 C 語(yǔ)言函數(shù)的返回值?
#define預(yù)編譯的指令
C語(yǔ)言的編程技巧
C語(yǔ)言程序的結(jié)構(gòu)
C語(yǔ)言的常量介紹
C語(yǔ)言宏拼接運(yùn)算符典型使用
C語(yǔ)言和單片機(jī)C語(yǔ)言有什么差異
利用C語(yǔ)言union特性來定義RGB565格式
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(九):內(nèi)置C語(yǔ)言的自定義機(jī)械手模型實(shí)現(xiàn)
SConscript結(jié)果與rtconfig.h中宏定義相反,是什么原因呢?
C語(yǔ)言中的內(nèi)聯(lián)函數(shù)與宏
【C語(yǔ)言進(jìn)階】宏定義里面使用#define會(huì)怎么樣?
評(píng)論