關於 ifdef和 if的驗證

2021-08-20 01:31:54 字數 436 閱讀 8973

**中經常出現#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...