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;  
    }  
举报

相关文章推荐

typedef与宏定义区别

华丽一族 发布于: 2011-03-12 22:09 陷阱一:   记住,typedef是定义了一种类型的新别名,不同于宏,它不是简单的字符串替换。比如:   先定义: ...

inline与宏定义区别

inline函数是C++引入的机制,目的是解决使用宏定义的一些缺点。1.为什么要引入内联函数(内联函数的作用)用它替代宏定义,消除宏定义的缺点。宏定义使用预处理器实现,做一些简单的字符替换因此不能进行...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

C++ 宏定义和 typedef 的区别

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

C/C++ 中的宏定义

本文来自CSDN博客,转载出处:http://blog.csdn.net/hairetz/archive/2009/11/08/4785047.aspx 众多C++书籍都忠告我们C语言宏是万...

C/C++:宏定义中的#与##

C/C++:宏定义中的#与##

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

Link: http://blog.csdn.net/love_gaohz/article/details/7567856 (1) 编译器处理方式不同   define宏是在...

C/C++ 宏定义

目录(?)[-] 简单宏定义带参数的宏运算符运算符宏的通用属性宏定义中圆括号创建较长的宏 较长的宏中的逗号运算符宏定义中的do-while循环do 空操作的定义 预定义宏C语言中常用的宏 ...

[c/c++]宏定义,#,##

# —— 字符串 ##——连接两个参数 #include iostream> using namespace std; #define TEST(pid) (cout #defi...

C/C++ 宏定义 # ##

一、C/C++ 宏定义 # Stringizing Operator 数字符号或“字符串化”运算符 (#) 将宏参数转换为字符串而不扩展参数定义。 它只用于采用参数的宏。 如果它在宏定义中位于形参之...

[c/c++]宏定义,#,##

/c++]宏定义,#,## # —— 字符串 ##——连接两个参数 #include using namespace std; #define TEST(pid) (cout #def...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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