宏#define的三种基本定义方式:固定值,表达式,运算符。 | 您所在的位置:网站首页 › 怎样计算带有单位的算式 › 宏#define的三种基本定义方式:固定值,表达式,运算符。 |
#define:
define是C语言中的预处理命令,预处理命令以“#”开头,比如我们经常写的代码#include也是预处理命令。 #define用于宏定义,作用是方便程序段的定义和修改,可以将一个变量强制定义为你想要的值,它能提高源代码的可读性,为编程提供方便。 宏定义又分为无参宏定义(不带参数)和带参宏定义(带有参数)。 预处理是什么? 预处理就是指计算机在进行编译运行之前做的工作。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。 无参宏定义:固定值,表达式 固定值:(直接上代码)格式:#define 标识符 变量 #include #define SUM 3.1415926 //宏定义,相当于SUM=3.1415926 int main() { int r=3; float face; face=r*r*SUM; //直接引用SUM printf("圆的面积为:%.2f",face); return 0; }注意:中间为空格,最后不要加“ ; ”,加了分号连分号一起替换。 如下面这段代码是可以实现的: #include #define SUM 3.1415926; //等价于SUM=3.1415926; int main() { int r=3; float face; face=r*r*SUM //分号在宏定义处 printf("圆的面积为:%.2f",face); return 0; }注:如果要在这样写,变量名必须写在一个语句的最后。如face=r*r*SUM ,而face=SUM*r*r是错误的,所以注意宏定义后面最好不要去加分号。 运算符:格式:#define 标识符 运算符号 #include #define SUM 3.1415926 #define C * //C等价于* int main() { int r=3; float face; face=r C r C SUM; //等价于face=r * r * SUM printf("圆的面积为:%.2f",face); return 0; }这个太简单了,来点有难度的 格式:#define 标识符 表达式 如:#define MAY(a,b) a*b+a+b #include #define MAY(a,b) a*b+a+b //MAY=a*b+a+b int main() { int x=2,y=3,face; face=MAY(x,y); //等价于x*y+x+y printf("运算结果为:%d",face); return 0; }再举个列子,如:#define MAY(a,b) a>b?a:b #include #define MAY(a,b) a>b?a:b int main() { int x=2,y=3,face; face=MAY(x,y); printf("运算结果为:%d",face); return 0; }如果在比较长的代码中,不需要这个宏定义了,怎么结束它呢? 就这样引出了终止符#undef 格式:#undef 标识符 undef后面的标识符表示你所要终止的宏。程序一旦运行到它,之后的这个宏将不再起作用,再使用,编译将会报错。 |
CopyRight 2018-2019 实验室设备网 版权所有 |