|
|
1
3
不,因为这种类型的替换不适用于更复杂的类型。例如:
声明
要将其作为宏来完成,必须使其成为函数样式,以便它可以在展开的中间插入变量名。
并像这样使用:
这也不适用于声明多个变量。你必须写
你不会写
就像你可以用
|
|
2
1
不 . 作为示例,
然后在:
|
|
|
3
0
不
|
|
|
4
-1
否-C预处理器不处理typedef。C预处理器不识别C语言的语法;它将不知道什么是typedef,什么不是typedef。 #define严格来说是“foo_t”的文本替换“int”;由预处理器完成的替换发生在编译之前。 |
|
|
Timo · 如果宏变量后跟构成有效标识符的字符,则不会展开宏变量 8 年前 |
|
|
user3623498 · 在#if中更改变量时出现问题 8 年前 |
|
|
einpoklum · 来自#cmakedefine替换的意外结果 8 年前 |
|
|
Joseph Franciscus · C中预处理器方法的别名++ 8 年前 |
|
|
stoper · 防止同一宏在多个转换单元中具有不同的定义 8 年前 |
|
|
СеÑгей · MinGW中预处理器g++的奇怪行为 8 年前 |