面试题答案
一键面试常见误区
- 字符串连接:代码中
#x " = %d\n"
这种写法在某些编译器下可能会有问题。虽然C标准允许相邻字符串字面量自动连接,但这种写法不够直观和通用,在一些编译器环境中可能无法正确解析。
修正方法
- 使用标准字符串连接方式:将
#x " = %d\n"
改为#x " = %d\n"
的标准连接方式,即使用,
连接两个字符串。修改后的代码如下:
#define PRINT(x) printf(#x " = %d\n", x)
int main() {
int num = 10;
PRINT(num);
return 0;
}
修改为:
#define PRINT(x) printf("%s = %d\n", #x, x)
int main() {
int num = 10;
PRINT(num);
return 0;
}
这样修改后,通过 printf
的格式化字符串和参数列表,清晰地实现了将宏参数转换为字符串并输出其值的功能,且更具可移植性。