有关预处理器命令
1.#define 定义编译期间的常量
2.#undef 取消编译期间的常量
3.#ifdef (条件编译)
#else
#endif
看下面的一个例子:
DPRINTK( "adc opened\n"); //执行后的结果为:"当前函数 当前行:adc opened"
2.#undef 取消编译期间的常量
3.#ifdef (条件编译)
#else
#endif
看下面的一个例子:
#undef DEBUG //取消DEBUG常量
#define DEBUG //定义DEBUG常量,表达执行程序时有调试结果
#ifdef DEBUG //如果已经定义了DEBUG常量(调试时)
#define DPRINTK(x
) {printk(__FUNCTION__"(%d): ",__LINE__);printk(##x);} //定义DPRINTK常量,会输出当前函数,当前行.
#else //没有定义DEBUG常量,则不输出当前函数之类的调试结果
#define DPRINTK(x
) (void)(0)
#endif
__FUNCTION__,__LINE__是预定义的宏.另外,"x...",printk(##x)表达本身结果.#define DEBUG //定义DEBUG常量,表达执行程序时有调试结果
#ifdef DEBUG //如果已经定义了DEBUG常量(调试时)
#define DPRINTK(x
![](https://www.cnblogs.com/Images/dot.gif)
#else //没有定义DEBUG常量,则不输出当前函数之类的调试结果
#define DPRINTK(x
![](https://www.cnblogs.com/Images/dot.gif)
#endif
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)