【define】你知道C语言中define的作用吗?

您所在的位置:网站首页 define在c语言中是什么意思 【define】你知道C语言中define的作用吗?

【define】你知道C语言中define的作用吗?

2024-03-12 10:45| 来源: 网络整理| 查看: 265

文章目录 前言一、define是什么?二、define的作用1.define定义符号2.define定义宏 总结

前言

define是编程语言中一种重要的关键字,今天我为你们讲解其在C语言中的作用

一、define是什么?

define的中文意思是定义,C语言中预处理命令的一种。分为无参宏定义和带参宏定义: 无参宏定义的一般为:#define 定义符号 符号无参数; 带参宏定义一般为;#define 定义 宏 宏有参数。

二、define的作用 1.define定义符号

代码如下(示例):

#include #define max 10 int main() { int max = 10; int arr[max] = { 0 }; printf("%d", max); return 0; }

此代码运行结果: 在这里插入图片描述 我们再来看一段代码 代码如下(示例):

#include //#define max 10 int main() { int max = 10; int arr[max] = { 0 }; printf("%d", max); return 0; }

此代码运行结果: 在这里插入图片描述 从这两段代码可以看出define定义变量不是简单的定义,而是文本的替换。 #define使max直接替换成100所以第一段代码中数组可以正常分配, 而第二段代码中max虽然定义了但是不是替换,它还是变量所以数组不能正常分配。

2.define定义宏

代码如下(示例):

#include #define add(x,y) x+y int main() { int a = 10; int b = 15; add(a, b); printf("%d", add(a, b)); return 0; }

此代码运行结果: 在这里插入图片描述 这就是代码定义宏也就是定义函数,但是代码定义宏还有一些细节让我再给你们一段代码看一下 代码如下(示例):

#include #define add(x,y) x+y int main() { int a = 10; int b = 15; add(a, b); printf("%d",4* add(a, b)); return 0; }

此代码运行结果: 在这里插入图片描述 这是就会有人产生疑惑了这代码运行结果不应该是100吗,为什么会是55? 这是因为define定义函数(宏)的时候运算是按顺序进行的 所以运算顺序是4*x+y,因此代码的结果才会是55 那有些人就会问那我就要100呢,那我们必须在define定义宏的后面x+y加上一个大括号(x+y)这样代码运行结果就会是100 代码如下(示例):

#include #define add(x,y) (x+y) int main() { int a = 10; int b = 15; add(a, b); printf("%d",4* add(a, b)); return 0; }

此代码运行结果: 在这里插入图片描述 这便是我们想要的代码运行结果

总结

1.define定义符号 define定义符号是直接把符号替换成另一个值,与正常的定义不同。 2.define定义宏 define定义函数与定义符号一样,只不过是用一个表达式代替了值。 要注意的一点是define定义函数时表达式与其它数相加减乘除是按顺序进行计算,除非给表达式加一个()。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3