C语言中的#和##你还傻傻分不清楚吗

简介: 简单介绍两者的用途并以代码的形式举例

1、#
把宏参数变成一个字符串

2、##
连接两个宏参数

3、示例
#include

define STR(s) #s

define CONS(a,b) int(a##e##b)

int main()
{
printf(STR(vck)); // 输出字符串"vck"
printf("STR(123) = %s\r\n", STR(123)); // 输出字符串"123"
printf("%d\n", CONS(2,3)); // 2e3 输出:2000
return 0;
}

当宏参数是另一个宏的时候,需要注意的是凡宏定义里有用’#’或’##’的地方宏参数是不会再展开. 即, 只有当前宏生效, 参数里的宏!不!会!生!效 !!!!

相关文章
|
22天前
|
C语言
C语言之文字游戏
C语言之文字游戏
|
22天前
|
存储 算法 Java
初学者对C语言中指针的爱恨情仇
初学者对C语言中指针的爱恨情仇
51 0
|
9月前
|
存储 编译器 C语言
C语言之文件操作(究极无敌详细!)
C语言之文件操作(究极无敌详细!)
|
12月前
|
存储 编译器 C语言
抽丝剥茧C语言(中阶)指针+练习
抽丝剥茧C语言(中阶)指针+练习
|
12月前
|
IDE Java 编译器
抽丝剥茧C语言(初阶 上)
抽丝剥茧C语言(初阶 上)
|
12月前
|
安全 编译器 C语言
抽丝剥茧C语言(初阶 中)
抽丝剥茧C语言(初阶 中)
|
12月前
|
编译器 C语言
|
12月前
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
安全 编译器 C语言
【C语言】刨根问底 - 深剖const关键字
【C语言】刨根问底 - 深剖const关键字
71 0
【C语言】刨根问底 - 深剖const关键字
|
C语言
一些c语言零碎小知识
一些c语言零碎小知识
77 0
一些c语言零碎小知识