码迷,mamicode.com
首页 > 编程语言 > 详细

关于C语言中的一些宏的小知识

时间:2015-09-25 00:11:48      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

关于C语言中的一些宏的小知识

1.##和#

c语言中,##表示把两个宏参数贴合在一起,即,
#define call(x,y) x##y ,执行call(x,y)结果为xy,例如,
int x=2,y=5;
int xy=90;
printf("%d\n",call(x,y));//结果为90

##被称为连接符,用来将两个宏参数连接为一个宏参数。
而单个#的功能是将其后面的宏参数进行字符串化操作,简单地说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号,使其成为字符串。

以上引自百度知道。

但是好像##和#只能用在宏定义中

#include<iostream>
#define fun(a,b) a##b
#define f(x) #x
int main()
{
    int x = 1;
    int y = 2;
    int xy = 5;
    std::cout<<fun(x,y)<<"\n"<<f(xy)<<":"<<xy<<std::endl;
    std::cin>>x;
    return 0;
} 

以上代码运行的结果是:

5
xy:5

很有意思的运算符

关于C语言中的一些宏的小知识

标签:

原文地址:http://www.cnblogs.com/ztype/p/4836937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!