**中經常出現#ifdef和#if,太久沒看c,有點疑惑。剛剛用c-free驗證後,總結一下。
四種情況:
#define test
#define test_0 0
#define test_1 1
#define test_null null
#ifdef test
或者#ifdef test_0
或者#ifdef test_1
或者#ifdef test_null
這四種情況後面的**都可以執行。
而#if test
或者#if test_0
或者#if test_1
或者#if test_null
這四種情況只有#if test_1 後面的**可以執行。
關於 ifdef的用法
1 生成動態鏈結庫 ifdef export api define dll api extern c declspec dllexport else define dll api extern c declspec dllimport endif 2 兩個系統的選擇 ifdef win32 incl...
ifdef和 if的差別
最近專案要從windows平台移植到linux平台,所以做了很多相容性相關的工作。遇到乙個小問題,我想通過win32巨集來區分兩個平台,之前以外win32變數是自己定義到,所以我做了如下宣告 define win32 1 1 windows,0 linux 程式中這樣使用 if win32 1 do...
if和 ifdef的區別
學習stm32偶然發現 在keil中直接預先定義巨集use stdperiph driver,但是卻沒有指定巨集的值。而在標頭檔案中判斷用的是如下 1 ifdef use stdperiph driver 2 include stm32f4xx conf.h 3 endif use stdperip...