目标c:无法理解#define宏的扩展方式

时间:2018-09-21 09:29:02

标签: objective-c

你好

#define A 1+5
int a = A/A;
NSLog(@"value a %d",a);

显示结果为11

请您能解释一下它的工作原理吗? 我想了解编译器为显示此结果所做的步骤。 预先谢谢你。

1 个答案:

答案 0 :(得分:5)

int a = A/A

扩展为int a = 1+5/1+5,即1 + 5 + 5,即11

也许您想成为#define A (1+5)

宏不是功能。他们不计算值并将其插入代码中。宏将在编写时简单地扩展。

顺便说一下,这不是扩展宏的编译器,而是预处理器