问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++头文件中 #ifndef是什么意思?

发布网友 发布时间:2022-04-24 12:46

我来回答

3个回答

热心网友 时间:2023-10-13 06:59

定义成空的呗

这就是个小技巧, 为了防止两次include同一个头文件。
第一次include的时候由于 ns_telnet_h没定义,所以宏里面的内容(也就是头文件的全部内容了) 会被编译。 而第二次include它的时候由于 ns_telnet_h已经被定义,所以宏里面的内容不会被编译。 这个宏没define成任何有意义的东西,是因为实际上只是需要ns_telnet_h存在就可以,它的内容无所谓

热心网友 时间:2023-10-13 07:00

#ifndef
xxx//如果没有定义xxx
#define
xxx//定义xxx
#endif
//结束如果
这个用法主要是在头文件中,主要是为了防止类重复的include,所以在类的头文件之前加上前面两个,用类名替代xxx,在最后加上最后一句。
--------------------------------------------------
另,谢谢楼下的补充,不过有一点要注意的是,在c++里面中,尽量不要使用#define定义常量。见:
5.1
为什么需要常量
如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?
(1)
程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。
(2)
在程序的很多地方输入同样的数字或字符串,难保不发生书写错误。
(3)
如果要修改数字或字符串,则会在很多地方改动,既麻烦又容易出错。
l
【规则5-1-1】
尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串。
例如:
#define
max
100
/*
c语言的宏常量
*/
const
int
max
=
100;
//
c++
语言的const常量
const
float
pi
=
3.14159;
//
c++
语言的const常量
5.2
const

#define的比较
c++
语言可以用const来定义常量,也可以用
#define来定义常量。但是前者比后者有更多的优点:
(1)
const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。
(2)
有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试。
l
【规则5-2-1】在c++
程序中只使用const常量而不使用宏常量,即const常量完全取代宏常量。
5.3
常量定义规则
l
【规则5-3-1】需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。
l
【规则5-3-2】如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值。

热心网友 时间:2023-10-13 07:00

条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译。
了解:条件编译当然也可以用条件语句来实现。 但是用条件语句将会对整个源程序进行编译,生成的目标代码程序很长,而采用条件编译,则根据条件只编译其中的程序段1或程序段2,生成的目标程序较短。如果条件选择的程序段很长,采用条件编译的方法是十分必要的。
#ifndef 标识1 //判断"标识1"是否定义,如果被定义则返回假,如果没有被定义则返回真。
/*举例:*/
语句1 #ifndef 标识1
语句2 #define 标识1
语句3 #endif
语句4 ……
语句5 ……
该段代码意思是:如果标识1没有被定义,则重定义标识1,即执行语句2、语句3;如果标识1已经被定义,则直接跳过语句2、语句3,直接执行语句4、语句5、……
/***********************************/
备注:#ifndef 和 #endif 要一起使用,如果丢失#endif,可能会报错。
关于它更详细的介绍,请见百度百科:http://ke.baidu.com/link?url=SDpXsjGHpzgzLJt0cjLEY-gmIKStEbziY-T8RtKpbnlsv0VDT595Ga2Zt3S3LI-_t2pqfsiaepD76s2RzyiIrq
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 荷叶,玫瑰花,红巧梅三种花茶一起泡有什么功效?去痘印吗 红巧梅花和玫瑰花 玫瑰花可以和红巧梅一起喝吗 请问玫瑰花+红巧梅泡茶喝有什么作用! 玫瑰花+红巧梅泡茶喝有什么作用 qq怎么单独匿名和别人聊天 手机QQ v6.6.8 3050 QQ怎么对好友单独匿名聊天 数位板在photoshop里没有压感 为什么ps的笔刷没压感 为什么我的PS除了铅笔工具其他所有画笔工具都没有压感 PS没有压感了 photoshop cc 2018没有压感 PS里无压感怎么办 photoshop的画笔没有压感怎办 数位板在PSCC画笔没压感如何解决 mac系统ps cc2018版本 wacom手绘板无压感怎么办? 自己拿着手机。然后把手机背 面 朝向自己拍照。自己看不见自 己,为什么拍出来的人很奇怪? 一只手拿着手机对着自己拍照代表什么意思? 自己拿着手机。然后把手机背面朝向自己拍照。自己看不见自己,为什么拍出来的人很奇怪? 为什么别人帮我拍照脸都是方的 红巧梅花和玫瑰花茶和薄荷茶和玉兰花和洋甘菊喝了有什么作用 李博峰的学术论文 玫瑰花+红巧梅+紫罗兰一起泡茶有什么作用 premiere pro cc 2015 脱机激活请求代码:Li9F 3gUS rTk0 oVtf SKp8 VHVu NeAd TOvP CP9Y vohG y6E= 请问,红花,红巧梅,玫瑰花,甘草。怎样搭配泡水喝比较好? 跪求陈赫最近参加什么综艺,【免费高清】在线观看百度网盘资源 玫瑰花和红巧梅和茉莉花一喝有何作用 红巧梅,玫瑰,金盏花可以一起喝吗? rtkcoldr64.dll没有被指定在windows上运行 我买了枸杞、玫瑰花、柠檬片、红巧梅、勿忘我,请问这些该怎么搭配着喝? 红茶可以加玫瑰花和红巧梅一起冲泡吗,有什么功效,求解、、、 造梦西游3极品号1070个道具,孟婆汤,强化石。。。。 买号送刷极品号源教程 红巧梅,桃花和玫瑰花茶可以一起喝么 红花和玫瑰花、红巧梅泡茶喝对多囊性软卵巢综合症有什么好处 红巧梅和玫瑰做花茶可不可以加枸杞 玫瑰贡菊千日红桃花茉莉花勿忘我红玫瑰红巧梅组合花茶的功效 玫瑰花茶,有什么疗效,祛痘喝什么好,求大神解答 红巧梅和什么花茶搭配能起到祛斑的作用 收款二维码邮局的好还是农村信用社的好 服装店适合用什么平台的二维码收款