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

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

相关文章
|
6月前
|
存储 安全 Java
初学者对C语言的爱恨情仇之神秘的字符串
初学者对C语言的爱恨情仇之神秘的字符串
59 0
|
5月前
|
存储 C语言
【海贼王编程冒险 - C语言海上篇】C语言中的数据类型有哪些?又是如何存储?
【海贼王编程冒险 - C语言海上篇】C语言中的数据类型有哪些?又是如何存储?
33 0
|
存储
用处巨广的操作符,快来学学叭(C语言版)
用处巨广的操作符,快来学学叭(C语言版)
70 1
|
6月前
|
C语言
C语言之文字游戏
C语言之文字游戏
|
6月前
|
算法 搜索推荐 程序员
C语言第三十二练——最小表示法
C语言第三十二练——最小表示法
48 0
|
6月前
|
Java C语言 Python
震惊 C语言竟然还有这些函数
震惊 C语言竟然还有这些函数
62 0
震惊 C语言竟然还有这些函数
|
6月前
|
存储 算法 Java
初学者对C语言中指针的爱恨情仇
初学者对C语言中指针的爱恨情仇
62 0
|
C语言
【初阶C语言】随意拿捏循环语句
【初阶C语言】随意拿捏循环语句 上节课我们学完了分支语句(if和switch语句),这节课请继续跟着本娥学习循环语句
98 0
|
C语言
一个风骚的C语言操作
一个风骚的C语言操作
|
安全 编译器 C语言
【C语言】刨根问底 - 深剖const关键字
【C语言】刨根问底 - 深剖const关键字
92 0
【C语言】刨根问底 - 深剖const关键字