面试题答案
一键面试#include <stdio.h>
// 宏定义PI
#define PI 3.14159
int main() {
double radius = 5.0;
double area;
// 使用宏计算圆面积
area = PI * radius * radius;
printf("圆的面积: %.2f\n", area);
// 清除宏
#undef PI
// 尝试再次使用PI,这里会导致编译错误
// area = PI * radius * radius; // 取消注释此行,编译器会报错
return 0;
}
编译器的反应:当取消注释area = PI * radius * radius;
这行代码时,编译器会报错,提示PI
未定义。原因是#undef
指令用于移除一个宏定义,在执行#undef PI
后,PI
这个宏就不再存在于预处理器的符号表中,后续代码就无法识别PI
,因此会导致编译错误。