字符化运算符 (#@)
2015-11-15 22:23
169 查看
charizing 运算符只能与宏的参数一起使用。 如果宏的定义中的形参前有 #@,则会在扩展宏时用单引号括起实参并将其视为一个字符。
<span style="font-size:18px;">#include <stdio.h>
#define makechar(c) #@c
#define T a
int main() {
char a = makechar(a);
printf("%d\n", a);
a = makechar(ab);
printf("%d\n",a);
a = makechar(1);
printf("%d\n", a);
a = makechar(12);
printf("%d\n", a);
a = makechar("");
printf("%d\n", a);
a = makechar("a");
printf("%d\n", a);
a = makechar(T);//宏定义无法替换
printf("%d\n", a);
const char* str = "abc";
a = makechar(stra);//最多接受4个字符
printf("%d\n", a);
}</span>
<span style="font-size:18px;">#include <stdio.h>
#define makechar(c) #@c
#define T a
int main() {
char a = makechar(a);
printf("%d\n", a);
a = makechar(ab);
printf("%d\n",a);
a = makechar(1);
printf("%d\n", a);
a = makechar(12);
printf("%d\n", a);
a = makechar("");
printf("%d\n", a);
a = makechar("a");
printf("%d\n", a);
a = makechar(T);//宏定义无法替换
printf("%d\n", a);
const char* str = "abc";
a = makechar(stra);//最多接受4个字符
printf("%d\n", a);
}</span>
相关文章推荐
- LeetCode Single Number III 异或+补码
- 网球循环赛日程表--多边形法
- 字节流,和字符流
- Android加载图片的工具类
- JAVA课程作业07
- 【Linux】内存优化检查主要工具free top vmstat
- C++ 定义类类型对象,默认构造函数,带有默认参数的构造函数
- sql优化
- POJ 2455 Secret Milking Machine && 二分枚举 + 最大流
- InputStream的封装类
- 车牌定位--颜色分割
- 九度oj-1167-数组排序
- 双硬盘安装双系统详解
- Windows下MySQL的配置
- 手脱ACProtect v1.35(无Stolen Code)之二
- 课后作业PPT 7
- win7 x64.esd
- 【LeetCode从零单刷】Different Ways to Add Parentheses
- Java多线程基础(四)Java传统线程同步通信技术
- 组合/聚合复用原则(CARP)