3.5、#和##运算符使用分析
来源:互联网 发布:手机加油软件 编辑:程序博客网 时间:2024/06/04 23:21
1、#运算符用于在预编译期将宏参数转换为字符串
#include <stdio.h>
#define CONVERS(x) #x
int main()
{
printf ("%s\n", CONVERS(Hello World!));
printf ("%s\n", CONVERS(100));
printf ("%s\n", CONVERS(while));
printf ("%s\n", CONVERS(return));
return 0;
}
2、##运算符用于在预编译期粘连两个符号
#include <stdio.h>
#define NAME(n) name##n
int main()
{
int NAME(1);
int NAME(2);
NAME(1) = 1;
NAME(2) = 2;
printf("%d\n", NAME(1));
printf("%d\n", NAME(2));
return 0;
}
#include <stdio.h>
#define CONVERS(x) #x
int main()
{
printf ("%s\n", CONVERS(Hello World!));
printf ("%s\n", CONVERS(100));
printf ("%s\n", CONVERS(while));
printf ("%s\n", CONVERS(return));
return 0;
}
2、##运算符用于在预编译期粘连两个符号
#include <stdio.h>
#define NAME(n) name##n
int main()
{
int NAME(1);
int NAME(2);
NAME(1) = 1;
NAME(2) = 2;
printf("%d\n", NAME(1));
printf("%d\n", NAME(2));
return 0;
}
3、利用##定义结构体类型
#include <stdio.h>
#define STRUCT(type) typedef struct _tag_##type type;\
struct _tag_##type
STRUCT(Student)
{
char* name;
int id;
};
int main()
{
Student s1;
Student s2;
s1.name = "s1";
s1.id = 0;
s2.name = "s2";
s2.id = 1;
printf("%s\n", s1.name);
printf("%d\n", s1.id);
printf("%s\n", s2.name);
printf("%d\n", s2.id);
return 0;
}
0 0
- 3.5、#和##运算符使用分析
- #和##运算符使用解析
- # 和 ## 运算符 使用解析
- #和##运算符使用解析
- 主题三 编译过程介绍----20.#和##运算符的使用分析
- c语言“->”运算符和“.”运算符的使用简介
- 运算和运算符
- 二进制转换和运算符使用
- 第3章:使用运算符&&、||和^
- js中运算符&& 和 || 的使用
- 下标的使用和运算符重载
- 运算符重载和模板的使用
- 关于 PHP 中 echo 和 print 和 '.' 运算符混合的运算分析
- 逻辑运算符 ||, && ,| 三目运算符 使用分析
- 位运算符分析
- 位运算符 & | ^ ~ << >> 分析
- 位运算符分析
- 运算符和运算数
- ACM程序设计题目 Problem. T-20
- Android之ContentProvider跨程序共享数据入门(笔记二)
- 算法导论读书笔记(5)
- 图灵访谈之三十二:陈皓(@左耳朵耗子)专访-----一个拥有独特个性、优秀人格的魅力的技术人
- 计算机图形学00一一 OpenGL 渲染管线的流程
- 3.5、#和##运算符使用分析
- c++11中的tuple(元组)
- 最短路 Dijkstra Floyd HDU 1874 畅通工程续
- C# vs 不显示最近打开文件项目
- 浅谈Java中的equals和==
- linux网络编程之SCTP协议
- hdu 3792 Twin Prime Conjecture 浙大复试上机题 水题
- 算法导论读书笔记(6)
- CENTOS 7 开放端口设置