1)#ifdef只是判斷後面的識別符號有沒有定義,而不在乎識別符號的值,識別符號是0是1對它來說都沒有區別,只要預先定義了,執行#ifdef後的**;
2)#ifdef是和#else搭配使用的,沒有#elif搭配之說;
3)#ifdef必須要有#endif配合使用;
#define iftest1 0
#define iftest2 1
intmain()
輸出:ifdef:0
1)#if是要判斷它後面表示式真假的,是真才執行#if後的**;
2)#if和#elif搭配使用,這就可以用多種條件編譯選擇;
3)#if也是必須要以#endif配合使用。
#define iftest1 0
#define iftest2 1
intmain()
輸出 if
:1
if和 ifdef的區別
學習stm32偶然發現 在keil中直接預先定義巨集use stdperiph driver,但是卻沒有指定巨集的值。而在標頭檔案中判斷用的是如下 1 ifdef use stdperiph driver 2 include stm32f4xx conf.h 3 endif use stdperip...
if和 ifdef的區別
學習stm32偶然發現 在keil中直接預先定義巨集use stdperiph driver,但是卻沒有指定巨集的值。而在標頭檔案中判斷用的是如下 1 ifdef use stdperiph driver 2 include stm32f4xx conf.h 3 endif use stdperip...
ifdef 和 pragma once 的區別
方式1 ifdef heat name define heat name endif 方式2 pragma once 正文 方式1用來防止某個巨集被多次定義。方式2是c 語言中的巨集定義,通過巨集定義避免檔案多次編譯,需要編譯平台的支援。他依賴巨集的名字不能重複,這不光保證同一檔案不會被包含多次,也...