C语言复习--#和##
发布日期:2022-02-17 02:39:45
浏览次数:30
分类:技术文章
本文共 553 字,大约阅读时间需要 1 分钟。
#操作符作用于预处理期将宏参数转换为字符串。转换作用是在预处理期完成的,因此只有在宏定义中才有效。编译器不知道#的转换作用。
比如
#define STRING(x) #x
printf("%s\n",STRING(Hello world);
##运算符是将两个符号粘连在一起。同样是预处理期完成的因此在宏定义中有效。
#define NAME(n) name##n
int NAME(1);//name1
int NAME(2);//name2
NAME(1) = 1 ;
NAME(2) = 2;
printf("%d\n",NAME(1));
printf("%d\n",NAME(2));
这个##操作符的妙用
#define STRUCT(name) typedf struct _tag_##name name; \
struct _tag_##name
STRUCT(student)
{
char* name;
int id;
};
int main()
{
student s;
s.name = "zhangsan";
s.id = 110;
printf("%s\n",s.name);
printf("%d\n",s.id);
return 0;
}
学习交流群 199546072
转载地址:https://blog.csdn.net/qq_39809601/article/details/81747571 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月05日 01时38分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP Extension programming
2019-04-27
海量数据处理
2019-04-27
PHP防止注入攻击
2019-04-27
多路IO复用模型 select epoll 等
2019-04-27
Linux Epoll介绍和程序实例
2019-04-27
output_buffering详细介绍
2019-04-27
php缓冲 output_buffering和ob_start
2019-04-27
php error_reporting 详解
2019-04-27
剖析PHP中的输出缓冲
2019-04-27
HTTP响应头不缓存
2019-04-27
PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】
2019-04-27
Javascript到PHP加密通讯的简单实现
2019-04-27
德国SNS交友/视频网站Poppen.de的技术架构分享
2019-04-27
UNIX环境编程
2019-04-27
一笔画问题【数据结构-图论】
2019-04-27
红黑树
2019-04-27
安装多个gcc
2019-04-27
Linux0.01内核根目录Makefile注释
2019-04-27
【CSDN2012年度博客之星】需要您的一票,感谢大家的支持
2019-04-27
PHP对于浮点型的数据需要用不同的方法去解决
2019-04-27