条件编译是指预处理器根据条件编译指令,有条件地选择源程序代码中的一部分代码作为输出,送给编译器进行编译。主要是为了有选择性地执行相应操作,防止宏替换内容(如文件等)的重复包含。常见的条件编译指令如表 1 所示。

表 1 常见的条件编译指令
条件编译指令说 明
#if如果条件为真,则执行相应操作
#elif如果前面条件为假,而该条件为真,则执行相应操作
#else如果前面条件均为假,则执行相应操作
#endif结束相应的条件编译指令
#ifdef如果该宏已定义,则执行相应操作
#ifndef如果该宏没有定义,则执行相应操作

条件编译,顾名思义,根据设置条件进行编译,格式像这样(但不仅限于此):
1633000372bf1b40aa73?from=pc.jpg
1633000372d029a924b0?from=pc.jpg
168400037650fc83f56c?from=pc.jpg
1633000372e437e26e41?from=pc.jpg
1633000372f4eba41c7b?from=pc.jpg
16850004fe923f9a2b64?from=pc.jpg
168400037691972bb6b8?from=pc.jpg
16810004ffcf9008d7ff?from=pc.jpg
使用条件编译时,应注意以下两点:

  • 为了使程序风格一致,应尽量使用同一格式;
  • 记得包含宏定义头文件,如果未包含,则其实相当于没定义,条件编译变成“固定编译”了。比方我在myconfig.h头文件中定义如下:#define XXXXX,在另外一个源文件mysrcfile.c中如果需要调用该宏定义作条件编译,则需在mysrcfile.c中包含myconfig.h,大概像这样:#include “myconfig.h”。
支持原创,转载时请注明出处,疯狂码者愿与你一起努力,共同成长,谢谢!

来源 ,疯狂码者