c语言中 #ifdef ...... 和#endif 配套使用的方法 ?
2022-12-11 · 百度认证:北京惠企网络技术有限公司官方账号
使用方法:
比如头文件名为keyboard.h。通用的使用方法如下:
#ifndef _KEYBOARD_H
#define _KEYBOARD_H
??
#endif
通过这种方法,当第一次使用这个头文件的c文件,编译时,查看是否定义_KEYBOARD_H
第一次肯定没有,所以它就定义了头文件里面的相关宏以及变量。
第二个使用这个头文件的C文件,编译时,一看_KEYBOARD_H已经存在,说明需要使用的东西使用存在,不需要定义了,直接使用就可以了。
扩展资料:
#ifdef语句1
//程序2
#endif
作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。
代码举例:新建define.cpp文件
#include<iostream>
using namespace std;
int main(int argc,char*argv[])
{
#ifdef DEBUG
cout<<"Beginning execution of main()"<<endl;
#endif
return 0;
}
运行结果为:
1
Press any key to continue
改写代码如下:
#include<iostream>
using namespace std;
#define DEBUG
int main(int argc,char*argv[])
{
#ifdef DEBUG
cout<<"Beginning execution of main()"<<endl;
#endif
return 0;
}
运行结果为:
Beginning execution of main()
Press any key to continue
更一般的情况是,#define语句是包含在一个特定的头文件中。
比如,新建头文件head.h,在文件中加入代码:
#define DEBUG
#ifdef DEBUG
#endif
而在define.cpp源文件中,代码修改如下:
#include<iostream>
#include"head.h"
using namespace std;
int main(int argc,char*argv[])
{
#ifdef DEBUG
cout<<"Beginning execution of main()"<<endl;
#endif
return 0;
}
运行结果如下:
Beginning execution of main()
Press any key to continue
结论:
通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。
参考资料: