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

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

相关文章
|
5月前
|
机器学习/深度学习 人工智能 C语言
【c语言基础题】— —第五版,可当作日常练习和期末复习,有奇效哟!
【c语言基础题】— —第五版,可当作日常练习和期末复习,有奇效哟!
|
5月前
|
存储 安全 Java
初学者对C语言的爱恨情仇之神秘的字符串
初学者对C语言的爱恨情仇之神秘的字符串
56 0
|
4月前
|
人工智能 JavaScript C语言
|
5月前
|
C语言
C语言之文字游戏
C语言之文字游戏
|
存储
用处巨广的操作符,快来学学叭(C语言版)
用处巨广的操作符,快来学学叭(C语言版)
67 1
|
5月前
|
存储 算法 Java
初学者对C语言中指针的爱恨情仇
初学者对C语言中指针的爱恨情仇
60 0
|
C语言
【初阶C语言】随意拿捏循环语句
【初阶C语言】随意拿捏循环语句 上节课我们学完了分支语句(if和switch语句),这节课请继续跟着本娥学习循环语句
93 0
|
C语言
一个风骚的C语言操作
一个风骚的C语言操作
|
Unix 编译器 Linux
抽丝剥茧C语言(中阶)操作符+练习(下)
抽丝剥茧C语言(中阶)操作符+练习
|
存储 编译器 C语言
抽丝剥茧C语言(中阶)操作符+练习(上)
抽丝剥茧C语言(中阶)操作符+练习