zoukankan      html  css  js  c++  java
  • objective-c(十)关于宏的使用

      在objective-c中,有一种类似于jsp小脚本的东西,叫做宏。这种东西实际上就是在编译是才对实际使用的值与对象进行确认,主要针对的是编译过程。

      预编译的一个使用是

      #define 宏名称 值

      在以上是定义一个类似于内存的东西。宏名称是自定义的。可以等同于变量名,有不成文的约定是使用全部大写的字母。 后面的值可以标量,也可以函数代码。非常灵活

      当定义好了以后。这就是一个预编译常量。开始在代码的任何地方使用。

      以上只是一个最基本的还可以这样使用

      #define 宏名称(X,Y) NSLog(@"",(X),(Y));

      这样。只需要在下面的代码中调用如下

      宏名称(1,2);

      即可调用以上的打印;

      还有以下专门为宏准备的内置宏变量

      __FILE__  获取当前执行文件位置

      __LINE__  获取当前调用行数

      __DATE__  获取当前日期

      __TIME__  获取当前时间

      这些都是在编译时获取的。所以自定义的变量不可使用"__"开头和结尾

      前面讲过宏不仅可以定义常量,还可以定义函数。那么当函数不是一行时。可以使用 +enter 来实现多行函数

      还有一个小技巧是。可以获取一个变量的变量名

      #define 宏名称(value) NSLog(@"%s---%@",#value,value);

      如上:#value打印出来的是变量的变量名称,value可以打印出变量的值。用于内部检查非常适合。

      最后介绍的是

      #ifdef 宏名称

        code

      #else if 宏名称

        code

      #else

        code

      #endif

      这样就可以实现在预编译阶段区分一些代码。如果是测试环境,和正式环境区分使用就可以通过这个方法来实现。

      其实内置宏还有很多。具体使用的时候可以到GCC文档查阅

      

      

      

      

  • 相关阅读:
    Binder机制,从Java到C (大纲)
    大陆台湾计算机术语比对
    关于nginx架构探究(2)
    关于nginx架构探究(1)
    关于开源中文搜索引擎架构coreseek中算法详解
    关于linux定时操作cron的理解
    sqlachemy 使用实例
    nginx+uwsgi+flask搭建python-web应用程序
    VC维
    关于zMPLS的设计解析
  • 原文地址:https://www.cnblogs.com/imtodd/p/6678926.html
Copyright © 2011-2022 走看看