张家口远大建设集团网站,遵义网站推广,wordpress分页404,刚做的网站关键词就上来了创作不易#xff0c;本篇文章如果帮助到了你#xff0c;还请点赞 关注支持一下♡#x16966;)!! 主页专栏有更多知识#xff0c;如有疑问欢迎大家指正讨论#xff0c;共同进步#xff01; #x1f525;c系列专栏#xff1a;C/C零基础到精通 #x1f525; 给大… 创作不易本篇文章如果帮助到了你还请点赞 关注支持一下♡)!! 主页专栏有更多知识如有疑问欢迎大家指正讨论共同进步 c系列专栏C/C零基础到精通 给大家跳段街舞感谢支持ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ c语言内容
专栏c语言之路重点知识整合
【c语言】全部知识点总结 目录 一、传参数的宏替换二、宏替换不会做表达的运算三、宏替换多行—反斜杠连接四、#undef取消宏替换五、宏替换转字符串、拼接等用法六、宏替换的优缺点 在C语言中曾介绍过宏定义的基本使用方法
【c语言】详解宏定义#define 各种使用方法
本文将深入介绍宏替换的更高级用法 宏替换一般这样使用
#define N 100在预处理期能将N替换为100然后进行编译
一、传参数的宏替换
宏替换可以传递参数
#define M(VALUE) int a VALUE;在使用宏时可以将实参传递给宏定义中定义的形参主函数使用方法如下 M(3);cout a endl;二、宏替换不会做表达的运算
定义一个乘法宏替换
#define MUL(A,B) A*B如果加上运算符宏替换就不会做想象中的运算 此时运算过程为 1 3 * 2 7,而不是1先3再*2
函数参数只是替换的作用不会像函数参数一样做表达式的运算
可以在宏定义中添加括号解决
#define MUL(A,B) ((A)*(B))宏替换中的运算符也不会运算
只是单纯的替换不会先12再*2而是1 2 * 2 5 三、宏替换多行—反斜杠连接
一般来说宏替换只会替换当前行如果想要替换多行代码可以使用反斜杠/实现
在每行末尾添加反斜杠/一般最后一行不用反斜杠/的含义是用来连接当前行和下一行
#define TianXi(N) \for (int i 0; i N; i)\{\cout i ;\}cout endl;注意事项反斜杠/的后面不能写任何东西包括空格、注释等四、#undef取消宏替换
使用#undef可以限制宏替换的作用范围在#undef的下面取消对某个宏的定义 五、宏替换转字符串、拼接等用法
使用#可以将宏替换中的参数转换为字符串
#define Q(A) #A
Q(TianXi); // TianXi使用#可以将宏替换中的参数转换为单个字符
#define W(A) #A
W(!); // !使用##可以将宏替换和其他语句拼接
#define S(A) int a##A1;
S(3); //int a3 1;六、宏替换的优缺点
宏替换的优点
便于维护提高代码的可读性由于宏替换将代码片段在预处理期替换可以提高程序的执行效率
宏替换的缺点
没有安全类型的检查宏定义在部分代码中可能不直观可能不方便调试宏替换不会运算求解 大家的点赞、收藏、关注将是我更新的最大动力 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大我会继续不断努力提供有价值的内容如果本文哪里有错误的地方还请大家多多指出(●◡●)