【C语言】宏定义
  yFrZFbkx1QJB 2023年12月06日 12 0

🚩 WRITE IN FRONT🚩   

  • 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎
  • 🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博主、华为云享专家、阿里云专家博主、掘金优秀创作者、全网粉丝量7w+、全网访问量100w+🏅
  • 🆔 本文章内容由 謓泽 原创 如需相关转载请提前告知博主 ⚠
  • 🙌 Gitee:謓泽 (wsxsx) - Gitee.com
  • 🎁 点赞👍+ 收藏⭐️+ 留言📝
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 📩

🍑宏定义

        #define 机制包括了一个规则,允许把参数替换到文本当中去,这种实现操作通常被称之为是宏(macro) 或者是 宏定义define macro)

        带参数的宏定义方式如下格式↓

#define 宏名(参数表)字符串

        那么光说是不行的,我们就用宏定义来实现两个数字的相加。代码示例如下👇

#define _CRT_SECURE_NO_WARNINGS 1
#define ADD(x,y) x+y
#include<stdio.h>
int main(void)
{
	printf("相加的值:%d\n",ADD(5, 5));
	return 0;
}

运行结果🖊 

        相加的值:10

        上述代码的意思是我们先调用宏也就是宏调用,把宏里面的值传递给宏名当中的参数表,然后再传过去的参数表替换到字符串的文本当中去。

注意:宏的参数是先完成替换的,不是先计算然后再进行传参的。如下代码所示↓

#define _CRT_SECURE_NO_WARNINGS 1
#define S(x) x*x
#include<stdio.h>
int main(void)
{
	printf("相加的值:%d\n",S(3+1));
	return 0;
}

【C语言】宏定义_字符串

        我一开始的时候看到这个代码以为是16,4*4不就是16吗。实际上我想错了。

        它的工作原理是这个样子的,这里3+1就是宏的参数,那么就会把3+1传递到宏的参数当中去。那么这个时候替换完成之后就是:3+1 * 3+1,这不就是7吗。没错(@^0^)

【C语言】宏定义_宏定义_02

        一句话总结:参数会经过任何的计算直接传入进去。 

        实际上我们想要得到4*4的一个结果实际上这也很容易,把字符串文本修改下即可。

#define S(x) (x)*(x)

【C语言】宏定义_#define_03

        当然这还是不够严谨,完美再加一个小括号再外面。

#define S(x) ((x)*(x))

【C语言】宏定义_字符串_04

【C语言】宏定义_字符串_05

        ()YYDS!那么这个概念性的东西就说到这里,具体还是要多上手打下代码去进行实践。 


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
yFrZFbkx1QJB