目录
学习 #if defined #ifdef #ifndef 条件编译指令
使用 #if defined 和 #ifdef 条件编译指令
学习 #if defined #ifdef #ifndef 条件编译指令
#if #ifndef 条件编译指令是用来判断某个符号是否被定义过,被定义过的话就为真,没有被定义过就为假
#if defined 代码模板演示:
#if defined(symbol)
// ……
#endif
#ifdef 代码模板演示:
#ifdef symbol
// ……
#endif
#ifndef 代码模板演示:
#ifndef symbol
// ……
#endif
使用 #if defined 和 #ifdef 条件编译指令
#if defined 代码演示( symbol 被定义过时):
#define WIN 0
int main()
{
#if defined(WIN)
printf("have windows\n");
#endif
return 0;
}
代码验证( symbol 被定义过时):
代码验证( symbol 未被定义过时):
#ifdef 代码演示( symbol 被定义过时):
#define WIN 0
int main()
{
#ifdef WIN
printf("have windows\n");
#endif
return 0;
}
代码验证( symbol 被定义过时):
代码验证( symbol 未被定义过时):
结论:
由此可见,#if defined 和 #ifdef 这两个条件编译指令的作用是一样的
使用 #ifndef 条件编译指令
代码演示( symbol 被定义过时):
#define WIN 0
int main()
{
#ifndef WIN
printf("have windows\n");
#endif
return 0;
}
代码验证( symbol 被定义过时):
代码验证( symbol 未被定义过时):
结论:
由此可见,#ifndef 条件编译指令 和 #ifdef 条件编译指令的作用刚好相反