#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. #define xxx在源代码或-D xxx到编译器?
- 5. python 2.7.5+ split list ['a','xxx yyy zzz']成列表['a','xxx','yyy','zzz']如何?
- 6. 值xxx对yyy无效。错误的日期时间格式
- 7. 住宅“XXX”的类型“YYY”的对象
- 8. C99有#define吗?
- 9. jQuery .val('xxx')没有设置值,但.attr('value','xxx')是?
- 10. LookupError:未在蛋'YYY'中找到入口点'XXX',但XXX存在于蛋'YYY'
- 11. 用C语言中使用#define没有价值
- 12. 原型为XXX XXX ::不上课XXX匹配任何
- 13. 如何理解“typedef int(xxx)(int yyy);”?
- 14. 警告:现场XXX没有默认值
- 15. (记事本++)替换为正则表达式:FixedText(xxx [yyy],无论)到FixedText(yyy,xxx [yyy],无论如何)
- 16. 找不到方法XXX引用的类XXX。 <YYY>
- 17. 显示的#define值
- 18. #define stringFormat中的值?
- 19. 获取define()的值
- 20. #define的条件值
- 21. 内嵌与C++ FAQ示例对比#define
- 22. 如何更改#define值
- 23. 错误XXX在YYY没有指定类型
- 24. SQLite的列错误:表XXX没有名为YYY
- 25. 如何比较变量的值对的#define
- 26. HAML:创建数据-XXX-YYY属性
- 27. https://bitbucket.org/xxx/yyy Git合并分支'主'
- 28. 遗漏的类型错误:对象#<YYY>有没有方法“XXX”
- 29. 验证为XXX-XXX-XXXX或(XXX)XXX-XXXX
- 30. libboost-XXX-dev和libboost-XXX有何区别?
对于近距离的选民:对,一个基本的问题,可能很容易找到在教程..但仍然,这不是一个有效的问题?让我修正标题 – quetzalcoatl 2014-10-03 15:07:03