首页 > 解决方案 > 目标c:无法理解#define 宏是如何扩展的

问题描述

你好,

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

它告诉我结果是 11

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

标签: objective-c

解决方案


int a = A/A

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

也许你想成功#define A (1+5)

宏不是函数。他们不计算值并将它们插入到代码中。宏在编写时将被简单地扩展。

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


推荐阅读