美文网首页
#define 宏定义的 #、##、#@、\

#define 宏定义的 #、##、#@、\

作者: Gary_fei | 来源:发表于2017-01-12 11:35 被阅读0次
#define Connect(x,y)       x##y
#define ToChar(x)           #@x
#define ToString(x)         #x
  1. ##连接操作符:表示 x 连接 y ,生成 xy
    NSString *str = Connect(@"a", @"b"); 结果是 str = @"ab"
  2. #@字符化操作符:表示将单个字符参数名转换成字符,以一个单引号括起来,其实就是给 x 加上单引号,结果返回是一个 const char。注意:只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。
    char a = ToChar(a); 结果是 a = 'a'
    3.#字符串化操作符:表示将宏定义中的闯入参数名转换成用一对双引号括起来参数名字符串。其职能用于有传入参数的宏定义中,且必须之一宏定义体中的参数名前,结果就是在 x 加双引号
    char *str = ToString(123); 结果是 str = "123"
    4.\行继续操作符:表示当定义的宏不能用一行表达完整时,可以用\表示下一行继续宏的定义。注意:最后一行不要加行继续符。编译器会在编译之前会自动将\与换行回车去掉;写多行是,反斜杠后不能有空格,否则编译器会报错。

相关文章

  • C语言 预处理指令

    一 .宏定义 #define 宏定义宏定义会在预处理的时候,用宏定义的值来替换宏的名称 定义格式 "#define...

  • C 语言之宏定义与条件编译

    一. 宏定义 #define PI 3.141592653 //无参宏 #define SUM(a,b) a + ...

  • 宏和条件编译的结合使用

    宏 宏定义 有参数 无参数 1.无参数的宏 语法: #define 宏名 宏值 #define MM 10 //...

  • 宏定义 define

    // 宏定义 define // Swift 中宏定义被去除了,取代的是 let 或者 get 属性 // 例如 ...

  • #define宏定义

    编译C程序有很多步骤,其中第一步被称作预处理(preprocessing) ,C预处理器在源代码被编译之前对其做一...

  • 宏定义(#define)

    (转自:https://blog.csdn.net/yanggangclcsdn/article/details/...

  • 链表主要操作集的实现

    相关宏定义及数据类型的别名定义#define OK 1#define ERROR -1#define EMPTY ...

  • iOS技术基础

    一、define定义的宏和const定义的常量有什么区别? define定义宏的指令,程序在预处理阶段将用#def...

  • C语言专题-预处理程序

    宏定义 即 # define 指令 简单的来说宏定义就是文本的简单替换:#define 名字 文本也可以把一个...

  • #define 宏定义的 #、##、#@、\

    ##连接操作符:表示 x 连接 y ,生成 xyNSString *str = Connect(@"a", @"b...

网友评论

      本文标题:#define 宏定义的 #、##、#@、\

      本文链接:https://www.haomeiwen.com/subject/xgydbttx.html