C语言当中的宏定义,宏的相关概念和作用和用法

您所在的位置:网站首页 wps里面的宏是干什么的,求解 C语言当中的宏定义,宏的相关概念和作用和用法

C语言当中的宏定义,宏的相关概念和作用和用法

2024-06-23 21:45| 来源: 网络整理| 查看: 265

一、什么是宏

1、用一个字符串表示有意义的常量或常量表达式(被称为宏)

二、如何来定义宏 1、宏的分类:

A、有参宏:

格式: #define 宏名 常量或常量表达式 比如: #define PI 3.14 (以后在程序当中只要看到了PI就代表3.14) #include #define PI 3.14 void main(){ int r = 2; float s1,s2,s3; s1=2*PI*r;//圆的周长 s2=2*PI*r*r;//圆的面积 s3=4*PI*r*r;//求的表面积 printf("s1=%1.f,s2=%1.f,s3=%1.f",s1,s2,s3); }

1、使用宏可以增加程序的灵活性 2、宏名为了区分变量一般用大写字母来表示,当然也可以用小写字母。 3、宏不是语句,所以在定义宏的时候不要加分号,如果加了分号则会连同分号一同替换。 4、宏可以嵌套定义

//宏的嵌套定义 #define M 3 #define N M+4

5、宏一般写在程序的开头。如果有头文件则将宏放在头文件的下面。 6、在字符串里面当中即使有宏名也不做替换。 7、宏的运行原理:“先替换,再代值” 看以下例子

例一、

#include #define M 2 #define N M+M void main(){ int k1,k2; k1=M*N;//2*2+2=6 k2=N*M;//2+2*2=6 printf("k1=%d,k2=%d",k1,k2); }

宏是什么就是什么,直接替换,定义宏时没有括号那么在使用的时候也没有括号 在这里插入图片描述

例二:

#include #define M 2 #define N M-3 #define K N-M void main(){ int k1,k2; k1=K*M/K-M;//N-M*M/N-M-M=M-3*2/M-3-2-2=2-3*2/2-3-3-3=-10 k2=K/K;//N-M/N-M=M-3-M/M-3-M=2-3-2/2-3-2=2-3-1-3=2-3-1-3-2=-7 printf("k1=%d,k2=%d",k1,k2); }

在这里插入图片描述 B、无参宏:

格式: #define 宏名 (参数) 表达式 比如: #define FUN(x,y) x*y

1、无参宏的参数不要加上类型 2、无参宏的参数是先替换再代值

案例一、

#include #define FUN(x,y) x*y void main(){ int a=3,b=4,k; k=FUN(a,b); printf("%d",k); }

在这里插入图片描述 案例二、

#include #define FUN(x,y) x*y void main(){ int a=3,b=4,k; k=FUN(a+b,a-b);//a+b*a-b=3+4*3-4=11 printf("k=%d",k); }

在这里插入图片描述 变化上述案例 在这里插入图片描述

案例三、

#include #define F1(x,y) x*y #define F2(x,y) F1(x+y,x-y)*F1(x-y,x+y) void main(){ int a=3,b=2,k; k=F2(a-b,a+b); /*F1(a-b+a+b,a-b-a+b)*F1(a-b-a+b,a-b+a+b) =a-b+a+b*a-b-a+b*a-b-a+b*a-b+a+b =3-2+3+2*3-2-3+2*3-2-3+2*3-2+3+2 =3-2+3+6-2-3+6-2-3+6-2+3+2 =15*/ printf("k=%d",k); }

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


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