当这头包括在内

当这头包括在内,它要做的第一件事是检查是否some_unique_name_here已先前定义的。如果这是我们第一次包括标题,some_unique_name_here没有被定义。因此,它#定义some_unique_name_here和包括该文件的内容。如果这不是我们包含标题的第一时间,some_unique_name_here将已经被定义从第一次标题的内容包括。因此,整个标题将被忽略。

你所有的头文件应该有他们的头文件保护。some_unique_name_here可以是任何你想要的名字,但通常与_h附加到它的头文件的名称是。例如,添加。H会有头文件保护:

1

2

3

4

5

6

# ifndef add_h

#定义add_h

/ /你的声明在这里

# endif

即使是标准库包含使用头文件保护。如果你要在Visual Studio 2005表达iostream头文件看一看,你会看到:

1

2

3

4

5

6

# ifndef _iostream_

#定义_iostream_

/ /内容在这里

# endif

亚历克斯

2007年12月13日晚8点15分,日志的回复

govz,据我所知,这是一个官方的预处理部分。你也应该能够使用和测试是否多个符号是在同一时间的定义:

#如果定义(symbol_a)和定义(symbol_b)

我没有涵盖这些具体的概念在本教程中,因为我甚至不盖什么| |和&符号意味着直到3.6节。这就应该是一种快速的介绍,而不是一个完整的预处理教程。:)

有相当多的其他事情预处理器可以做,我不(或不打算)在本教程中,盖。如果你有兴趣学习更多,有相当多的预处理文件是公开。这是一个。

亚历克斯

2007年12月23日下午登录回复8:38

billerr,你可以使用这样的定义有以下几个原因。头文件保护是主要的一个。然而,它可以是有用的定义的代码只执行时一定#定义已设置。例如,你可能会做这样的事:

如果定义了_debug #

cout << ndebugvariable << endl;

# endif

这将只打印ndebugvariable如果程序与_debug编译#定义符号。你可以把这个符号在编制一个用于开发或测试版的时候,但把它关掉为发布版本。

在游戏中我写了,我用了一个#定义切换是否产生随机地下城(游戏的发布版本)或一个特殊的调试级别(测试/开发)。我可以在两肘的评论/uncommenting的#定义和重新编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值