在C语言中有条件编译指令,常见的有:
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息
#if 0....#endif 的例子
#include <stdio.h> int main() { #if 0 printf("this is never here!\n"); #endif printf("#if .....#endif 之间的语句永远不会被执行!\n"); return 0; }
在涉及到C语言的项目时,可能有人会注意到里面出现了#if 0这样的语句,既然里面的语句永远不会被执行,那为什么要留下这样的代码呢?
看下面的例子:
#include <stdio.h> int main { /* int a=1; /*int b=2;*/ int c=3; */ return 0; }
这样的代码在编译的时候会出错,因为/* */ 跟最近的匹配,所以出现了错误。使用#if 0 .....#endif 可以用来避免这种错误,同时在代码中留下暂时不用,但可能有价值的代码。
时间: 2024-11-02 18:10:38