问题描述
我有这段代码,我需要输出 x 变量为double(3.14),而无需更改主函数中的任何内容
#include <iostream>
int main() {
int x = 3.14;
std::cout << x << "\n";
return 0;
}
我该怎么办?
解决方法
有两种解决方案,一种是正确的,另一种是您的教授可能想要的。
-
正确的解决方案(一种方法,还有其他类似的方法)。
在#include
行之后添加以下内容:int main() { double x = 3.14; std::cout << x << "\n"; return 0; } #if 0
在文件末尾添加它:
#endif
-
您的教授的解决方案不正确。
在main
之前添加以下行:#define int double
- 这为什么不正确?因为
#define
保留字是undefined behaviour。
[macro.names]翻译单元不得#define或#undef词法上与关键字[...]相同的
- 为什么我认为您的教授可能想要这个?因为我看过一些C ++作业,并且观察到他们的作者经常无视和滥用C ++标准。
- 您的教授可能想要第一个解决方案。我没有办法预测。
- 这为什么不正确?因为