c语言宏定义比较三个数大小,C语言中两个宏进行大小对比,其中一个没有定义,这种行为如何定义。...
1.C語(yǔ)言中兩個(gè)宏進(jìn)行大小對(duì)比,其中一個(gè)沒(méi)有定義,這種行為如何定義呢?
在學(xué)習(xí)U-boot的過(guò)程中遇到這么一個(gè)定義:
# if (CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE) && \
(CONFIG_ENV_ADDR + CONFIG_ENV_SIZE) <= \
(CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN)
# define ENV_IS_EMBEDDED
# endif
我這里主要看CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE
CONFIG_ENV_ADDR這個(gè)宏確實(shí)是有定義的,但是CONFIG_SYS_MONITOR_BASE我確實(shí)沒(méi)有定義的,在u-boot最后生成的include/autoconf.mk中也沒(méi)有查看到這個(gè)宏的值,說(shuō)明這個(gè)宏確確實(shí)實(shí)真沒(méi)有。
然后我們自己手動(dòng)寫(xiě)一個(gè)代碼
1 #include
2
3 #define CONFIG_ENV_ADDR 100
4 int main(int argc, char *argv[])
5 {
6 # if (CONFIG_ENV_ADDR >= CONFIG_SYS_MONITOR_BASE)
7 printf(">=\n");
8 #else
9 printf("==\n");
10 #endif
11 return 0;
12 }
13
14
gcc -E tesr.c -o test_1.c
預(yù)處理后查看到的結(jié)果是
840 int main(int argc, char *argv[])
841 {
842
843 printf(">=\n");
844
845
846
847 return 0;
848 }
請(qǐng)問(wèn)有大神知道相關(guān)點(diǎn)嗎?C語(yǔ)言沒(méi)學(xué)好啊!
總結(jié)
以上是生活随笔為你收集整理的c语言宏定义比较三个数大小,C语言中两个宏进行大小对比,其中一个没有定义,这种行为如何定义。...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 外汇交易平台怎么不能交易了
- 下一篇: 泰山神黄飞虎四家将周纪黄明龙环吴谦各用何