【发布时间】:2023-04-02 01:47:01
【问题描述】:
我正在尝试编写可以用任何现代版本的 g++ 编译的代码,但遇到了困难。我使用 Visual Studios 编写了代码,它运行良好,但我尝试在另一台计算机上编译它,但出现了问题。
一个问题是它无法识别宏EXIT_SUCCESS。我看到here 它是在cstdlib 中定义的,但是我为什么不需要导入那个库呢?
还有一个 .h 文件,我有 const private int PI = 3.1416,而在另一台计算机上它不喜欢这样。
那么你怎么知道什么是可移植的?我认为 C(因此本质上是 C++)是为了在任何地方编译而发明的。我问了this 的问题,但认为它被误解了,是否必须对 IDE 进行某些设置以确保可移植性?
编辑:我可能会更好地了解为什么代码在没有include <cstdlib> 的情况下在 Visual Studio 中编译以及如何关闭此类功能?
【问题讨论】:
-
1) 了解 C 和 C++ 之间的区别。 2)学习整数和浮点数的区别。 3)学习C和C++。 4) 编写正确的、符合标准的代码。那么就可移植性而言,您将有一个很好的开端。
-
@KerrekSB -1 答案毫无价值...学习 C 和 C++
-
@Celeritas c++ standards 很好地定义了什么是便携的,什么不是!
-
@Celeritas 你搜索in a good reference 它会告诉你。一段时间后您会了解这些内容,但标准库中有很多名称(以及下一个标准中的新名称),因此值得参考以方便检查这些内容。
-
@Celeritas: 我不知道你为什么说@KerrekSB 说的没有价值,你知道
EXIT_SUCCESS在stdlib.h下的C11 standard §7.22/3 says并且你说学C 没用吗.学习一门语言不仅仅意味着它的语法,它的意义远不止于此。
标签: c++ visual-studio cross-platform portability