#ifdef DEBUG
printf(“already exit\n”); /常用于测试,只有在头文件处宏定义了 DEBUG后才会编译的语句/
#endif
#ifdef xx
**意思是:ifdef后面的 xx 在之前已经被宏定义了,那么就会编译 #中间的语句#**执行与否看具体情况,比如这个上述代码,当头文件处宏定义了 DEBUG,就会编译,然后执行,否则 无。
后来才发现,还有其他的有趣的东西:
#if ,#ifdef #ifndef
【条件编译】
如:#define A 1
` #if (A>1)
getch();
#else
getchar();
#endif
编译时,结果为真(A大于1),生成程序文件时,不会有getchar()函数,文件大小可以看出
而
#ifdef==#if define
#ifndef==#if !define
每个之后都有#endif
in a word,条件编译 选择了一些语句只有在特定情况下才编译
测试所用的#ifdef xxxx 语句; #endif 及其他类似条件编译
最新推荐文章于 2022-08-02 15:44:31 发布