c语言中 #ifdef ...... 和#endif 配套使用的方法 ?

 我来答
问明6E
高粉答主

2019-06-24 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.9万
展开全部

使用方法:

比如头文件名为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指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。

参考资料:

百度百科——#ifdef

百度百科——#endif

玄清佳04z
推荐于2018-03-13 · TA获得超过567个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:182万
展开全部
一、为什么要用#ifdef .... #endif
在C语言中,我们通常会在头文件里面声明外面使用的宏定义、函数声明以及全局变量定义之类的,当我们需要使用这个东西的时候,只需要通过include "xxxx.h"包含相应的头文件即可。
但是如果连个xx.c文件同时包含了同一个头文件,会出现什么情况呢?
如果没有不使用#ifdef #endif ,则会出现宏、变量、重复定义,导致编译通不过。
所以我们需要通过 #ifdef #endif 来避免这个问题。
二、如何使用
比如头文件名为 keyboard.h 。那么通用的使用方法如下:
#ifndef _KEYBOARD_H
#define _KEYBOARD_H
............
#endif
通过这种方法,当第一次使用这个头文件的c文件,编译时,查看是否定义 _KEYBOARD_H
第一次肯定没有,所以它就定义了头文件里面的相关宏以及变量。
第二个使用这个头文件的C文件,编译时,一看 _KEYBOARD_H已经存在,说明我需要使用的东西使用存在,不需要定义了,直接使用就可以了 ,这样 问题就解决了。

完全手打,正好有空 ,解释一下,希望有用
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovepeahongdou
2011-08-02
知道答主
回答量:6
采纳率:0%
帮助的人:9.7万
展开全部
1.头文件中防止重复include
#ifndef _XX_H_
#define _XX_H_

#endif

2.用于注释掉一段代码
#ifdef _XX_H_

#endif

参考资料: http://zhidao.baidu.com/question/299574124.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xl1991212
2011-07-29 · 超过12用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:39.9万
展开全部
这个为了防止头文件重复定义吧 ,,随便写吧 一般写成头文件名的大写
#ifndef XXXX_H
.....
#endif
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-29
展开全部
1.头文件中防止重复include
#ifndef _XX_H_
#define _XX_H_

#endif

2.用于注释掉一段代码
#ifdef _XX_H_

#endif
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式