C语言 ##运算符 - C语言零基础入门教程

目录

  • 一.##运算符简介
  • 二.##运算符使用
    • 1.##运算符常规使用
    • 2.##运算符定义结构体
  • 三.猜你喜欢

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

一.##运算符简介

C 语言关于 define 的文章中我们有介绍到:凡是以#开头的均为预处理指令,预处理又叫预编译。预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。

C 语言除了**#运算符,还有 ##运算符 ;与 #运算符类似,##运算符可用于类函数宏(带参宏)的替换部分。##运算符可以把两个记号组合成一个记号。例如,可以这样做:**

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 ##运算符
//@Time:2021/07/10 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#define XVALUE(n) x##n //将符号 x 和 n 合并为一个记号
#define YVALUE(n) y##n //将符号 y 和 n 合并为一个记号
#define ZVALUE(n) z##n //将符号 z 和 n 合并为一个记号int XVALUE(1) = 10; //等价 int x1 = 10
int YVALUE(1) = 10; //等价 int y1 = 10
int ZVALUE(1) = 10; //等价 int z1 = 10

二.##运算符使用

1.##运算符常规使用

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 ##运算符
//@Time:2021/07/10 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include<stdio.h>#define XVALUE(n) x##n //将符号 x 和 n 合并为一个记号
#define YVALUE(n) y##n //将符号 y 和 n 合并为一个记号
#define ZVALUE(n) z##n //将符号 z 和 n 合并为一个记号#define NUM(a,b,c) a##b##cint main()
{int XVALUE(1) = 10; //等价 int x1 = 10int YVALUE(1) = 10; //等价 int y1 = 10int ZVALUE(1) = 10; //等价 int z1 = 10printf("XVALUE(1) = %d\n",XVALUE(1));printf("NUM(1,2,3) = %d\n",NUM(1,2,3));return 0;
}/*
XVALUE(1) = 10
NUM(1,2,3) = 123
*/

2.##运算符定义结构体

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 ##运算符
//@Time:2021/07/10 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/#include <stdio.h>#define  STRUCT(type)  typedef  struct  _tag_##type  type;\
struct  _tag_##typeSTRUCT(Student)
{char* name;int id;
};/*
//STRUCT(Student) 等价:typedef struct _tag_Student Student;struct _tag_Student
{char* name;int id;
};*/int main()
{Student s1;Student s2;s1.name = "s1";s1.id = 0;s2.name = "s2";s2.id = 1;printf("Student s1 name: %s\n", s1.name);printf("Student s1 id: %d\n", s1.id);printf("Student s2 name: %s\n", s2.name);printf("Student s2 id: %d\n", s2.id);return 0;
}/*
Student s1 name: s1
Student s1 id: 0
Student s2 name: s2
Student s2 id: 1
*/

C 语言可以先 [typedef](https://www.codersrc.com/archives/8854.html) 然后在定义,只要在某处最终把 struct 定义出来后,无论在任何地方都可以重新 typedef ,并不是必须先定义 structtypedef;

三.猜你喜欢

  1. C 语言 数组下标越界和内存溢出区别
  2. C 语言 指针声明和定义
  3. C 语言 指针 p++ / p–
  4. C 语言 p++/§++/_(p++)/_p++
  5. C 语言 使用指针遍历数组
  6. C 语言 指针和数组区别
  7. C 语言 指针数组和数组指针区别
  8. C 语言 空指针 NULL
  9. C 语言 void 指针
  10. C 语言 野指针
  11. C 语言 函数值传递和址传递
  12. C 语言 函数缺省参数
  13. C 语言 函数不定长参数
  14. C 语言 函数指针
  15. C 语言 指针函数
  16. C 语言 回调函数 callback
  17. C 语言 typedef
  18. C 语言 define 定义常量
  19. C 语言 define 防止头文件重复包含
  20. C 语言 #pragma once
  21. C 语言 #include <> 与 #include “” 区别
  22. C 语言 const 修饰变量
  23. C 语言 const 修饰指针
  24. C语言 const 修饰函数
  25. C 语言 const 修饰函数参数
  26. C 语言 const 和 define 区别
  27. C 语言 #运算符
  28. C 语言 ##运算符

未经允许不得转载:猿说编程 » C 语言 ##运算符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq之toggle()

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

要闻君说:很惊喜!原来坐火车也可以刷支付宝啦!加速5G,IBM要和沃达丰宣布成立合资公司!特斯拉要裁员7% 以削减成本...

关注并标星星CSDN云计算每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 嗨&#xff0c;大家好&#xff01;偶是要闻君。新年将至&#xff0c;年会未满&#xff0c;先听一首有关“假日”的歌曲吧&#xff0c;别忘记看要闻鸭&#xff01;文/要闻君春节即将…

C语言 __VA_ARGS__ - C语言零基础入门教程

目录 一.__VA_ARGS__简介二.__VA_ARGS__使用 1.__VA_ARGS__宏输出字符串常量2.__VA_ARGS__宏输出可变参数 三.__VA_ARGS__缺点 1.仅仅只支持字符串常量&#xff0c;不支持可变参数2.仅仅只支持可变参数&#xff0c;不支持字符串常量 四.猜你喜欢 零基础 C/C 学习路线推荐 : C/…

jq之hide(1000)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

K8S的SDN容器网络解决方案【机制篇】

戳蓝字“CSDN云计算”关注我们哦&#xff01;编者按&#xff1a;关于容器网络的解决方案业界已经有较多的讨论&#xff0c;笔者无意继续赘述。本文从K8S的网络实现入手&#xff0c;重点阐述SDN在容器网络中的应用价值。K8S及其网络模型体现了鲜明的解耦设计思想&#xff0c;采用…

C语言 ##__VA_ARGS__ - C语言零基础入门教程

目录 一.##__VA_ARGS__原理二.##__VA_ARGS__使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.##__VA_ARGS__原理 C 语言中 __VA_ARGS__ 是一个可变参数的宏&#xff0c;是新的 C99 规范中新增的&#xff0c;目前似乎只有 gcc 支持&#…

jq之隐藏和显示

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

C语言 函数不定长参数 ##__VA_ARGS__经典案例 - C语言零基础入门教程

目录 一.##__VA_ARGS__简介二.##__VA_ARGS__经典案例三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.##__**VA_ARGS__**简介 [__VA_ARGS__](https://www.codersrc.com/archives/9450.html) 在前面的文章也介绍了&#xff0c;有两个缺点&…

总编下午茶专题汇总

《总编下午茶》是CSDN一档关注技术应用和IT前沿的访谈类栏目&#xff0c;由CSDN各主编担任该节目主持人&#xff0c;并邀请众多技术大咖分享技术热点与前沿知识&#xff0c;同时也是技术小伙伴们分享交流的最佳平台。 NLP可行性研究方向和应用热点 “现在NLP技术处于什么发展…

jq之div hide slow

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

云重磅 |央视专访任正非;拼多多被薅上亿羊毛;甲骨文对云未来的10项技术预测...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周二第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

jq之mousedown

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

关于云原生,这是最详细的技术知识

戳蓝字“CSDN云计算”关注我们哦&#xff01;本文旨在揭示现代软件行业的关键主题——云原生应用程序。这篇文章涉及微服务、容器和无服务器应用程序。在这里&#xff0c;我们将讨论这些技术的实际优点和缺点。微服务是什么微服务架构作为构建现代软件应用程序的强大方法而享有…

html之引入独立js方便维护jq代码

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

jq之$(“tr:even“).css(“background-color“,“yellow“)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

容器精华问答 | Docker是否比虚拟技术要好?

戳蓝字“CSDN云计算”关注我们哦&#xff01;云计算的发展日新月异&#xff0c;新技术层出不穷&#xff0c;尤其容器技术自2013年Docker容器问世以来一路高歌猛进红遍大江南北&#xff0c;与虚拟机相比&#xff0c;容器更显优势&#xff0c;有着更轻量、更快捷、占用资源更少&a…

jq之$(“tr:odd“).css(“background-color“,“red“);

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>jq之demo</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js"></script><scrip…

C语言 va_start / va_end / va_arg 自定义 printf 函数 - C语言零基础入门教程

目录 一.前言二.函数不定长参数简介 1.va_start2.va_arg3.va_end 三.win32 控制台版本四.MFC 对话框版本五.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.前言 对 printf 函数的使用&#xff0c;我们并不陌生&#xff0c;首先我们来看看下面…

Kubernetes API 与 Operator:不为人知的开发者战争

戳蓝字“CSDN云计算”关注我们哦&#xff01;前情回顾&#xff1a;《Kubernetes API 与 Operator&#xff1a;不为人知的开发者战争&#xff08;上&#xff09;》2016 年秋天&#xff0c;原 CoreOS 公司的工程师邓洪超像往常一样&#xff0c;来到了同事位于福斯特城&#xff08…

jq之$(“:button“)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>点击p段落&#xff0c;把它们隐藏</title><!--线上jq库--><script src"https://code.jquery.com/jquery-3.4.1.min.js">&…