zoukankan      html  css  js  c++  java
  • 在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
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    ------------------越是喧嚣的世界,越需要宁静的思考------------------ 合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。 积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。
  • 相关阅读:
    TCP概述
    拥塞窗口
    流量控制与滑动窗口
    Hadoop完全分布式安装配置完整过程
    Nagle算法
    mac安装软件后打不开,显示损坏,扔到废纸篓
    mac设置有线访问内网,无线访问外网
    linux 开机自启脚本配置
    linux中$#,$0,$1,$2,$@,$*,$$,$?的含义
    Window-server-2012显示电脑图标
  • 原文地址:https://www.cnblogs.com/feng9exe/p/15149891.html
Copyright © 2011-2022 走看看