宏定义定义符号常量
- #define [] #undef PI 约定为大写, 编译器不检查宏定义, 不加分号;
- 类似sed流, 带参数必须与宏名()紧密连接, 否则是替换功能
三大预处理功能之一的本质--机械替换不智能
/// C:宏定义定义符号常量
#include <stdio.h>
// 宏定义替换所有PI
#define PI 3.14
int main(void) {
int r;
float s;
printf("请输入圆的半径:");
scanf("%d", &r);
s = PI * r * r;
printf("圆的面积是:%.2f\n", s);
#undef PI; // 结束PI的替换
return 0;
}
嵌套宏定义
///: C:嵌套宏定义
#include <stdio.h>
#define PI 3.14
#define R 6371
#define V PI * R * R * R * 4 / 3
int main(void) {
printf("地球的体积大概是: %.2f\n", V);
return 0;
}
参数宏定义
///: C:参数宏定义
// 无需为参数显式声明类型, 空格作为替换匹配, 使用括号转义
#include <stdio.h>
#define MAX(x,y) (((x) > (y)) ? (x): (y))
int main(void) {
int x, y;
printf("请输入两个整数: ");
scanf("%d%d", &x, &y);
printf("%d 是较大的整数!\n", MAX(x, y)); // MAX(x,y) 替换为 (((x) > (y)) ? (x): (y))
return 0;
}
标签:定义,int,高级,printf,PI,替换,define
From: https://www.cnblogs.com/nagisb/p/18528129