C宏高级应用之##/#
来源:互联网 发布:qq点亮图标软件 编辑:程序博客网 时间:2024/05/25 23:25
在宏定义中经常看到#和## 现在讲一下他们的用法
1,##是连接符:用于将两个参数连接在一起
例如:#define A(X, Y) X##Y
则 A(HE ,LLO) 结果是HELLO
#define LINK(A) MY##A
则 LINK(GOD)
相当于
>MYGOD
“##”是一种分隔连接方式 他的作用是先分隔 然后强制连接 分隔作用相当于空格
例:试比较下列宏定义的区别
例1 #define A1(name,type) type name_##type##_type
例2 #define A2(name, type) type name##_##type##_type
A1(a,int);相当于int name_int_type;
A2(a, int);相当于int a_int_type
在第一个宏定义中##把name_##type##_type分成了三段 name_、 type、 _type 只有type是前面出现过的 所以它可以被替换
在第一个宏定义中##把name##_##type##_type分成了四段name、_、type、_type name 和type是前面出现过的 所以它们可以被替换
2,#是“字符串化”的意思 用在宏定义中表示将#后面的参数转换成字符串
例:#define STRCPY(X ,Y) strcpy(x,#y)
则:strcpy(buff,abc)
相当于 strcpy(buff,“abc”)
0 0
- C宏高级应用之##/#
- C 语言宏高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用
- C语言宏的高级应用-转
- C语言高级应用
- 【学习ios之路:C语言】②高级指针应用
- C语言中的宏高级应用(转)
- C语言宏的高级应用 #与##作用
- C语言宏的高级应用 #与##作用
- Class使用方式
- 10分钟学会Git教程 - 安装Git、建仓库、添加和推送文件至库
- git 使用说明
- 韩顺平 java 第一讲 内容介绍,项目演示,原理剖析
- 【Leetcode】Set matrix zeros
- C宏高级应用之##/#
- QT显示图片
- GPS跟踪器
- 一个有Bug的绘图软件
- html,列表<ol>,<ul>,<dl>
- 浅谈HTTP中Get与Post的区别
- HDU2665--Kth Number(划分树)
- leetCode4.1.1(Valid Parentheses)
- UI中常用的4种传值