当前位置: 首页 > news >正文

关于预处理详解 #define 宏 #和##

#和##

#运算符

#运算符将宏的⼀个参数转换为字符串字⾯量。它仅允许出现在带参数的宏的替换列表中。
#运算符所执⾏的操作可以理解为”字符串化“。
当我们有⼀个变量 int a = 10; 的时候,我们想打印出: the value of a is 10 .
就可以写:
#define PRINT(n) printf("the value of "#n " is %d", n);
当我们把a替换到宏的体内时,就出现了#a,⽽#a就是转换为"a",时⼀个字符串
代码就会被预处理为:
printf("the value of ""a" " is %d", a);

例子

更改后

##运算符

## 可以把 位于它两边的符号合成⼀个符号 ,它 允许宏定义从分离的⽂本⽚段创建标识符 ## 被称
为记号粘合
这样的连接 必须产⽣⼀个合法的标识符 。否则其结果就是未定义的
写⼀个函数求2个数的较⼤值的时候,不同的数据类型就得写不同的函数
int int_max(int x, int y)
{return x>y?x:y;
}
float float_max(float x, float y)
{return x>yx:y;
}
这样写起来太繁琐了,现在我们这样写代码
完整代码

http://www.mrgr.cn/news/36078.html

相关文章:

  • 使用python搭建Web项目
  • 有限元方法仿真弹性体 (Finite Element Method, FEM)
  • 洛汗2保姆级辅助教程攻略:VMOS云手机辅助升级打怪!
  • SpringBoot集成阿里easyexcel(二)Excel监听以及常用工具类
  • 超详细 Git 教程:二十篇博客,三万字干货
  • 蜘蛛爬虫的ip来自机房,用户的爬虫来自于哪里
  • 2024低代码大赛火热进行,豪礼抢先看~
  • 【Linux实践】实验五:用户和组群账户管理
  • 网络原理3-应用层(HTTP/HTTPS)
  • C# 面向对象基础,简单的银行存钱取钱程序
  • 精密矫平机如何推动工业自动化?
  • 素数判断-C语言
  • 硬刚小米15,又一小屏旗舰加入战场了
  • 深入理解同步和异步与reactor和proactor模式
  • MySQL | group by 用法
  • C++ vector容器迭代器失效
  • 音乐服务器测试报告
  • Python如何保存py文件
  • 植物大战僵尸杂交版v2.5.1最新版本(附下载链接)
  • 【linux】regulartor-fixed