高级宏定义
1. 不带参数的宏定义
- 为了和普通的变量进行区分,宏的名字通常我们约定是全部由大写字母组成
- 宏定义只是简单地进行替换,并且由于预处理实在编译之前进行,而编译工作的任务之一就是语法检查,所以编译器不会对宏定义进行语法检查
- 宏定义不是说明或语句, 在末尾不必加分号
- 宏定义的作用域是从定义的位置开始到整个程序结束
- 可以用#undef 来终止宏定义的作用域
- 宏定义允许嵌套
例子:
#include <stdio.h>
#define PI 3.14
int main(void)
{
int r;
float s;
printf("请输入圆的半径: ");
scanf("%d", &r);
s = PI * r * r;
printf("圆的面积是: %.2f\n", s);
return 0;
}
宏定义嵌套
#