C语言中宏定义中的#和##
2011-11-17 19:45
441 查看
C语言中宏定义中#和##中作用
在宏定义中#和##的作用是:前者将宏定义的变量转化为字符串;后者将其前后的两个宏定义中的两个变量无缝拼接在一起。1. #: 在宏定义中,将其后的变量,转化为字符串。
eg: #define str(s) #s
输出: helloworld , 就可以通过这样的的调用, printf( str(helloworld) );
2. ## : 在宏定义中,将其前后的两个变量拼接在一起。
eg: #define v(a,b,c,d) 0xa##b##c##d
//将四个字节的十六进制的数据转化为一个十六进制的整型数据
int a = v(CF,AB,B0,BC); // 即 a = 0xCFABB0BC
3. 两者的共性: 能够阻止宏定义的递归展开。可以通过中间的转换的宏,来实现参数宏的展开。
实例代码如下:
#include<stdio.h>
#define str(s) #s
#define v(a,b,c,d) 0x##a##b##c##d
int main(int argc,char* argv[])
{
int a;
printf(str(HelloWold!\n));
a = v(2f,bc,ff,8d);
printf("%d : %0x", a,a);
return 0;
}
运行结果:
相关文章推荐
- C语言宏定义中的连接符#和##
- C语言宏定义中#符号和##的妙用
- C语言宏定义中#与##的用法
- 【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
- C语言宏定义中#和##的作用(需要对两片博文进行整理)
- 【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
- 【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
- C语言宏定义中#和##的作用
- 【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
- C语言:宏定义的#和##用法
- C语言宏定义中的#和##的作用【转】
- C语言宏定义中的#、#@与##
- c语言宏定义中的#、##应用实例
- C语言中宏定义中#和##之我见以及其在嵌入式中的简单运用
- 【C语言】关于宏定义中#和##符号的使用和宏定义展开问题
- C语言宏定义中#与##运算符
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
- 宏定义中#与##的用法
- 宏定义中##和#的作用
- C语言宏定义和宏定义函数 <一>