#include <stdio.h>
#define PI 3.14 // 宏定义PI的值 宏定义属于全局变量
#define SQUARE(r) ((r)*(r)) // 宏定义r的平方,通过传入r的值进行相乘
int main(){
int r = 0; // 初始化r
printf("Please enter the radius of the circle:\n");
scanf("%d", &r); // 从键盘上获取值放入r的地址
printf("Circle area = %lg\n", SQUARE(r)*PI); // 使用宏定义和PI相乘计算面积
printf("Circumference = %lg\n", 2*PI*r); // 计算周长
return 0;
}
#define宏定义:#define 常量名 常量
注意事项:
-
#define只做简单的文本替换,在预处理阶段进行,不进行语法检查。因此,需要在定义宏时注意表达式的正确性和安全性。
-
宏定义的字符串末尾不需要分号,宏定义本身不是一条语句。
-
宏定义具有全局作用域,会影响到所有后续的代码。因此,需要确保宏定义的名称不会与其他代码冲突。
-
宏定义的效率较高,但可能增加代码的长度和复杂性。因此,在使用宏定义时,需要权衡代码的可读性和性能。
-
宏定义使用时要注意参数的加括号,以避免优先级问题导致的错误。