C语言中的‘##’的含义
发布网友
发布时间:2024-10-05 20:58
我来回答
共3个回答
热心网友
时间:2024-11-25 05:43
拼接操作符(##)是二元的,被用来连接宏中两个实际参数,比如,如下宏定义
#define internal(var) internal##var
如果执行
long internal(str);
则被扩展为:
long internalstr;
在一般编程时很少用到拼接操作符,但在编写编译器程序或源代码生成器时特别有用,因为它能轻易的构造出一组标识符。
热心网友
时间:2024-11-25 05:44
##表示把前后字符连接起来做标识符
#define _PER_FSHIFT(PER,REG,FIELD) \
_##PER##_##REG##_##FIELD##_SHIFT
后面在使用的时候比如_PER_FSHIFT(AA,BB,CC)
宏展开后就表示_AA_BB_CC_SHIFT
热心网友
时间:2024-11-25 05:44
连接号
_PER_FSHIFT(11,22,33) 在程序中就是 _11_22_33_SHIFT