objective-c - 目标c:无法理解#define 宏是如何扩展的
问题描述
你好,
#define A 1+5
int a = A/A;
NSLog(@"value a %d",a);
它告诉我结果是 11
请你能解释一下它是如何工作的吗?我想了解编译器为显示此结果所做的步骤。先感谢您。
解决方案
int a = A/A
扩展为int a = 1+5/1+5
,即1 + 5 + 5
11
也许你想成功#define A (1+5)
宏不是函数。他们不计算值并将它们插入到代码中。宏在编写时将被简单地扩展。
顺便说一句,这不是扩展宏的编译器,而是预处理器
推荐阅读
- firebase - 如何使用结构表示 Cloud Firestore 中的分层数据?
- swift - 如何将 VStack 的中心对齐到一个点 SwiftUI
- javascript - 禁用评论内的 linting
- mysql - 如何按 WHERE 子句的值分隔 MySql 查询的结果集?
- html - 缩进块引用 HTML 内联
- perl - 在 Perl 脚本中调用 Windows 凭据
- mysql - 如何为 JIRA 和 MySQL 创建 docker-compose
- react-native - React Navigation 5堆栈导航器和抽屉导航器一起
- java - 在 Java 中读取 csv 文件时如何跳过空白单元格?
- java - 不先清除就更换一组