c语言:21、条件编译
1、条件编译
3种条件编译
#1. ifdef 如果定义了
#2. ifndef 如果没定义
#3. if 如果...
#
#endif
#if defined(MACRO) 等价于 #ifdef MACRO
例子:
判断语言运行的系统版本
#if defined(__unix__) || defined(__GYGWIN__) || defined(__MINGW32__)
printf("unix\n");
#elif defined(_WINDOWS)
puts("windows");
#else
puts("mybe other system?");
#endif
2、函数中使用条件编译
#include <stdio.h>
#define DEBUG
void dump(char *message){
#ifdef DEBUG
puts(message);
#endif
}
int main() {
dump("main start");
printf("03\n");
dump("main end");
return 0;
}
上方代码中的宏DEBUG
也可以在CMakeLists中定义
3、c代码中给c++使用
若c定义的宏代码给c++使用,需要加上条件编译ifdef __cplusplus
#ifdef __cplusplus
extern "C" {
#endif
int Add(int left, int right);
#ifdef __cplusplus
};
#endif