#define <text> <substitute>
定义了一个宏。但是#define <text>
,那就是了?这是做什么的?例如在标头警卫的情况下。'#define xxx'(没有任何价值!)与'#define xxx yyy'(带值)形成对比吗?
0
A
回答
5
它还定义了一个宏,被替换为无。
例如在标头警卫的情况下。
在这种情况下,我们只需要知道后卫宏是否已被定义 - 我们可以检查与#ifdef
或#ifndef
。它不需要被定义为任何东西,所以我们通常不会打扰任何事情。这给出了后卫的通常形式
#ifndef HEADER_H // check whether it's defined, skip to "endif" if so
#define HEADER_H // define it; doesn't need to contain anything
// header contents
#endif // skip to here (end of header) if already defined
因此,包括它一次将包括内容和定义宏;包括它第二次会无害地跳过内容,而不是重复它们,(可能)导致错误。
2
它定义了指定的标识符字面意思没有。就那么简单。
1
它定义了一个空的宏。在代码中遇到该宏词时,它将被替换为无。
这并不完全没有用,因为仍然可以用#ifdef
检测宏。它通常用于提供不同代码段的可选编译。
当用作包含警卫(使用#ifndef
)时,它将防止在单个源文件中多次处理标题。
3
这种类型的宏没有任何替代。
#define FOO
这是当宏仅用于测试是否存在有用:
#ifdef FOO
或
#if defined(FOO)
相关问题
- 1. 什么是“#define XXX”的价值?
- 2. 禁用'值'xxx'对'yyy'消息无效
- 3. MySQL WHERE XXX = ZZZ AND XXX = YYY
- 4. C99有#define吗?
- 5. C++的#define值
- 6. 原型为XXX XXX ::不上课XXX匹配任何
- 7. 警告:现场XXX没有默认值
- 8. #define stringFormat中的值?
- 9. #define的条件值
- 10. 如何更改#define值
- 11. SQLite的列错误:表XXX没有名为YYY
- 12. 错误XXX在YYY没有指定类型
- 13. 如何比较变量的值对的#define
- 14. 遗漏的类型错误:对象#<YYY>有没有方法“XXX”
- 15. 如何使用#define打印变量,如#define STR(M)= M的值
- 16. libboost-XXX-dev和libboost-XXX有何区别?
- 17. 使用python读取xxx,yyy,zzz形式的整数字符串
- 18. 使用define的最大值
- 19. const string与#define
- 20. Define BOOST_PHOENIX_ARG_LIMIT没有效果
- 21. tcl中#define的等价物?
- 22. 与错误的#define
- 23. Blackberry :: App。与OS 4.6.xxx和OS 5.0.XXX
- 24. HBASE 0.94.xxx与码头8.xxx
- 25. 价值型 'uiStackView' 没有成员 '形象'
- 26. 有没有办法在运行时设置#define的值?
- 27. 类型为“xxx”的对象无法转换为“yyy”类型
- 28. 如何使用autoconf指定#define的值?
- 29. 的#define远,近的#define WINDEF.H
- 30. 在Python中提取'\ xxx \ xxx \ xxx \ xxx \ xxx \'格式的特定字段?
对于近距离的选民:对,一个基本的问题,可能很容易找到在教程..但仍然,这不是一个有效的问题?让我修正标题 – quetzalcoatl 2014-10-03 15:07:03