在Xcode 查看预处理及预编译阶段“宏”Marcos

本文摘自ReactiveCocoa 中奇妙无比的“宏”魔法

对于编译语言来说,所有的宏都是在预编译的时候被展开的,所以在lex进行
词法扫描生成Token,词法分析过程之前,所有的宏都已经被展开完成了。

对于Xcode,预处理或者预编译阶段是可以直接查看的。

image

随便写一个宏,然后打开Xcode右上方的Assistant,选择“Preprocess”就可以看到该文件预处理之后的样子了。可以看到左边的@weakify(self) 被转换成了右边的两行代码了。

关于这个Xcode的这个功能还有2点补充说明:

1.不同阶段的Preprocessed可能不同,要根据你的目标去选择预处理的条件。

image

比如这里就有5种预编译的种类可以选择。

2.宏经过预编译之后出来的代码,是可以用来检测宏写的是否正确的,但是无法看到宏被展开的具体过程。这意味着我们可以通过Xcode这个功能来查看宏的作用,但是无法知道宏的具体实现。具体实现还是需要通过查看源码来分析。



作者:Jacob_LJ
链接:https://www.jianshu.com/p/222ce8bea7ba
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @   zzfx  阅读(381)  评论(0)    收藏  举报
编辑推荐:
· 当数据爆炸遇上SQL Server:优化策略全链路解析
· 记录一次线上问题排查:JDK序列化问题
· 微服务之间有哪些调用方式?
· 记一次SQL隐式转换导致精度丢失问题的排查
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
阅读排行:
· 一个基于 C# Unity 开发的金庸群侠传 3D 版,直呼牛逼!
· SQL Server 2025 中的改进
· 向商界大佬一样管理技术工作 - 以团队换将+技术重构为例
· 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析(三)--一个综合的例子
· DeepSeek+Coze实战:如何从0到1打造一个热点监控智能体
历史上的今天:
2019-08-16 函数式编程之-函数-需要配置上下文的可求值结构
2019-08-16 函数式编程之moand的作用
2019-08-16 函数式编程之构建--待完成
2019-08-16 函数式编程中的组合子
2019-08-16 函数式编程中的函数—函数式编程的多态
2019-08-16 swift函数式编程之compose
2019-08-16 swift的柯里化demo
点击右上角即可分享
微信分享提示