zoukankan      html  css  js  c++  java
  • Objective-C之成魔之路【13-预处理程序】

    郝萌主倾心贡献。尊重作者的劳动成果,请勿转载。

    假设文章对您有所帮助。欢迎给作者捐赠。支持郝萌主,捐赠数额任意。重在心意^_^ 

    我要捐赠: 点击捐赠

    Cocos2d-X源代码下载:点我传送



    预处理提供了一些工具,使用这些工具更易于开发、阅读、改动程序,

    也易于将程序移植到不同的系统中。

    你也能够使用预处理程序定制Objective-C语言,以适应特定应用的编程或自己的编程风格。


    预处理程序是Objective-C编译过程的一部分。它能够识别散布在程序中的特定语句。

    预处理程序使用井号#标记,这个符号必须是一行中的第一个非空格字符。


    #define语句:

    #define语句的基本用途之中的一个就是给符号名称指定程序常量。

    提前定义名称不是变量。因此。不能为它赋值,除非替换指定值的结果实际是一个变量。

    #define语句常常放在程序的開始,但#import或include语句之后。

    提前定义的名称和变量的行为方式不同:没有局部定义之类的说法。


    全部提前定义的名称都用大写,这样easy区分一个名称是变量名、对象名、类名,还是提前定义名称。


    其实。提前定义名称一出现。预处理程序就运行文本替换,

    这能够解释为什么通常不能使用分号结束#define语句的原因。


    注意。又一次定义底层语言语法的(#define AND &&)行为通常不是好的编程习惯。

    并且不easy让他人理解你的代码。

    假设须要第二行,那么上一行的最后一个字符必须是反斜杠。


    注意,在定义有參数的名称时,提前定义名称和參数列表的左括号之前不同意空格。

    后面使用參数的地方要用括号括起来。

    #define SQUARE(x)   ((x) * (*))


    #import语句:

    预处理程序同意你将全部的定义收集到一个单独文件里。然后使用#import语句把它们包括在程序中。

    这个主要能差别“”。和<>。“”是在本地路径查询,<>是在系统路径查询。


    条件编译:

    通经常使用于创建能够在不同的计算机系统上编译执行的程序。它还经经常使用来开关程序中的各种语句。

    #ifdef, #endif, #else, #ifndef和#undef这些都和c语言一样。

    #ifdef DEBUG

    #if defined (DEBUG)

    作用是同样的。

    #undef用于消除已经定义的名称


  • 相关阅读:
    NanoProfiler
    NanoProfiler
    Open Source Cassandra Gitbook for Developer
    Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
    Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
    Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
    Android Fragment使用(一) 基础篇 温故知新
    Set up Github Pages with Hexo, migrating from Jekyll
    EventBus源码解析 源码阅读记录
    Android M Permission 运行时权限 学习笔记
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6710052.html
Copyright © 2011-2022 走看看