C/C++宏定义中#与##区别

转载 2015年07月08日 10:00:52

【转载自】:http://blog.csdn.net/huang_xw/article/details/7648179

    // #表示:对应变量字符串化  
    // ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符  
    #include <stdio.h>  
    #define trace(x, format) printf(#x " = %" #format "\n", x)  
    #define trace2(i) trace(x##i, d)  

    int main()  
    {  
        int i=1;  
        char *s="three";  
        float x=2.0;  

        trace(i, d);                // 相当于 printf("x = %d\n", x)  
        trace(x, f);                // 相当于 printf("x = %d\n", x)  
        trace(s, s);                // 相当于 printf("x = %d\n", x)  

        int x1=1, x2=2, x3=3;  
        trace2(1);              // 相当于 trace(x1, d)  
        trace2(2);              // 相当于 trace(x2, d)  
        trace2(3);              // 相当于 trace(x3, d)  

        return 0;  
    }  

C++中宏定义和内联函数区别

1. 宏代码不是函数
  • cgl1079743846
  • cgl1079743846
  • 2014年05月27日 00:45
  • 2326

const常量的实现机制以及与宏定义区别

(1) 编译器处理方式不同   define宏是在预处理阶段展开。   const常量是编译运行阶段使用。 (2) 类型和安全检查不同   define宏没有类型,不做任何类型检查,仅仅是展开...
  • u014082714
  • u014082714
  • 2015年03月16日 10:49
  • 1695

#define与enum,你不知道的那些事

什么时候需要用到enum呢,就是变量的数值在几个范围之间.red,blue,black.这样用enum比较好.当然也可以用define.但是define维护起来比较麻烦. #define 适合比较少...
  • hbuxiaofei
  • hbuxiaofei
  • 2014年03月25日 11:33
  • 8285

C/C++: const常量与define宏定义的区别

Link: http://blog.csdn.net/love_gaohz/article/details/7567856 (1) 编译器处理方式不同   define宏是在...
  • chuanyituoku
  • chuanyituoku
  • 2014年01月20日 10:36
  • 932

C++编程:const常量与define宏定义的区别

(1) 编译器处理方式不同   define宏是在预处理阶段展开。   const常量是编译运行阶段使用。   (2) 类型和安全检查不同   define宏没有类型,不做任何类型检查,仅仅是...
  • liujianfei526
  • liujianfei526
  • 2016年01月18日 16:43
  • 250

C++内联函数与宏定义的区别

用内联取代宏: 1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会;  3.内联函数可以访问类的成员变量,宏...
  • ZHM977863924
  • ZHM977863924
  • 2015年04月26日 22:04
  • 303

C++杂记: 内联函数的使用,与宏定义、成员函数区别

内联函数类似于C里边的宏,只是宏经常有一些不安全因素,比如 宏定义 add() 是 a+b,调用的时候宏定义直接展开,不做任何的判断,如果调用res = add()*c; 得到的代码就是res = a...
  • m_LeonWANG
  • m_LeonWANG
  • 2014年06月25日 11:32
  • 1095

[C++基础]宏定义、内联函数、普通函数的区别

转载自:http://blog.csdn.net/gao675597253/article/details/7397373 用内联取代宏: 1.内联函数在运行时可调试,而宏定义...
  • kaisawind
  • kaisawind
  • 2013年09月15日 17:20
  • 511

C++ 宏定义和 typedef 的区别

宏定义#define为预处理指令,在编译处理时进行简单的文本替换,不作正确性检查,不关含义是否正确照样带入,只在编译已被展开的源程序时才会发现可能的错误并报错。   typedef为复杂的声明定义...
  • misayaaaaa
  • misayaaaaa
  • 2017年04月06日 09:25
  • 618

【zfind】简单的C/C++宏定义和类定义搜索工具

  • 2013年07月06日 22:12
  • 22KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C/C++宏定义中#与##区别
举报原因:
原因补充:

(最多只允许输入30个字)