【发布时间】:2020-06-02 20:25:38
【问题描述】:
我正在用 C 语言编写一个程序(使用学校特定的 IDE),然后在 Visual Studio 中将其转换为 C++。 C 中的程序将 long 变量作为 371449635398431 的用户输入(使用学校 IDE 和一个名为 get_long 的独特编译器函数)在 VS 中让它变得很长。 C 中的 long 是否与 C++ 中的 long 不同(C 中的 long 等同于 C++ 中的 long long?),还是编译器不匹配会导致问题?
【问题讨论】:
-
请刷新the help pages,采取SO tour,阅读How to Ask,以及this question checklist。最后,请edit 您的问题包含您的代码的minimal reproducible example,以及任何可能的输入以及实际和预期的输出。
-
这在实现之间会有所不同——不同的编译器和/或不同的操作系统。标准只保证整数类型的下限,不同的实现实现不同的实际边界/大小。
-
@Jeff on most 现代 Unix 系统
long将是 8 个字节。但在 Windows 和其他一些系统上,它确实是 4 个字节 - 就标准而言,这是完全可以的。 -
如果您需要 64 位整数,请始终使用
int64_t。
标签: c++ c visual-studio