目录
学习 #if defined #ifdef #ifndef 条件编译指令
使用 #if defined 和 #ifdef 条件编译指令
使用 #ifndef 条件编译指令
学习 #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");
#endifreturn 0;
}
代码验证( symbol 被定义过时):
代码验证( symbol 未被定义过时):
#ifdef 代码演示( symbol 被定义过时):
#define WIN 0
int main()
{#ifdef WINprintf("have windows\n");
#endifreturn 0;
}
代码验证( symbol 被定义过时):
代码验证( symbol 未被定义过时):
结论:
由此可见,#if defined 和 #ifdef 这两个条件编译指令的作用是一样的
使用 #ifndef 条件编译指令
代码演示( symbol 被定义过时):
#define WIN 0
int main()
{#ifndef WINprintf("have windows\n");
#endifreturn 0;
}
代码验证( symbol 被定义过时):
代码验证( symbol 未被定义过时):
结论:
由此可见,#ifndef 条件编译指令 和 #ifdef 条件编译指令的作用刚好相反