1.文件包含:
#include
系統文件用:“<>”
創建的文件用:“""”
2.宏定義:
#define
3.條件編譯:
#if, #elif, #else, #endif、#ifdef, #ifndef
分三種情況:
1、情況1:
#ifdef _XXXX
...程序段1...
#else
...程序段2...
#endif
這表明如果標識符 _XXXX已被 #define 命令定義過,則對程序段1進行編譯;否則對程序段2進行編譯。
例:
#define NUM
.............
.............
.............
#ifdef NUM
printf("之前NUM有過定義啦!:) \n");
#else
printf("之前NUM沒有過定義!:( \n");
#endif
}
2、情況2:
#ifndef _XXXX
...程序段1...
#else
...程序段2...
#endif
這裡使用了 #ifndef,表示的是 if not def。當然是和 #ifdef 相反的狀況(如果沒有定義標識符 _XXXX,那麼執行程序段1,否則執行程序段2)。
3、情況3:
#if 常量
...程序段1...
#else
...程序段2...
#endif
這裡表示,如果常量為真(非零),執行程序段1,否則執行程序段2。
可以將測試代碼段加進來。當需要開啟測試的時候,只要將常量變1就好了。而不要測試的時候,只要將常量變0。
4、情況4:
#if 條件 1
代碼段 1
#elif 條件 2
代碼段 2
...
#elif 條件 n
代碼段 n
#else
代碼段 n+1
#endif
運用:
假設我們已在程序首部定義 #ifdef DEBUG与 #ifdef TEST:
1.利用 #ifdef/3endif將某程序功能模塊包括進去,以向某用戶提供該功能。
在程序首部定義 #ifdef HNLD:
#ifdef HNLD
#include"n166_hn.c"
#endif
如果不愿向別的用戶提供該功能,則在編譯之前將首部的HNLD加一下划線即可。
2.在每一個子程序前加上標記,以便追蹤程序的運行。
#ifdef DEBUG
printf(" Now is in hunan !");
#endif
3.避開硬件的限制。有時一些具体應用環境的硬件不一樣,但限于條件,本地缺乏這种設備,于是繞過硬件,直接寫出預期效果。具体做法是:
#ifndef TEST
i=dial();
//程序調試運行時繞過此語句
#else
i=0;
#endif
調試通過後,再屏蔽TEST的定義并重新編譯,即可發給用戶使用了。

2315

被折叠的 条评论
为什么被折叠?



