Visual C++和C++有什么区别?

Laz*_*Laz 11 c++ visual-c++

那么这是一个相当愚蠢的问题.Visual C++只是一个IDE吗?或者它是win32的一种语言?这两者究竟有什么区别?我问这个是因为我在VC++ 2008上尝试了一些旧的C++代码而且无法编译.

Yan*_*min 14

Visual C++可以是很多东西,包括:

  1. 微软的C++编译器(cl.exe,link.exe等)
  2. IDE(C++模式下的Visual Studio)
  3. C运行时(MSVCRT)
  4. 其他库(不那么):MFC,ATL

至于编译旧的C++代码:Visual Studio现在是一个相当兼容的C++编译器.情况并非总是如此,例如使用Visual C++ 6或更早版本.您的代码很可能不符合标准或使用已弃用的行为,而这些行为根本不适用于较新的编译器.

不幸的是,Visual C++是一个糟糕的C编译器,因为它不支持C99(并且永远不会),除非C++和C99之间的功能重叠.对许多人来说,最值得注意的问题是缺乏stdint.h.

  • VC仍然非常明显地偏离标准C++的一种方式是它没有对模板进行适当的两阶段解析.这可以隐藏模板代码中的搞笑错误,如果您希望代码在更符合标准的编译器上编译,则会导致令人讨厌的意外.(这可能是VC的未来版本.) (6认同)

Jon*_*vis 5

Visual C++ 是一个 IDE。它编译标准 C++ 代码。然而,每个 C++ 编译器本质上都会创建自己的 C++ 版本。很少有编译器完全符合当前标准,它们可能会也可能不会添加即将发布的标准中的功能。此外,他们有时还会向该语言添加自己的扩展。因此,使用不同的编译器编译 C++ 代码时始终存在可移植性风险。然而,最新版本的 Visual C++ 相当接近标准兼容,并且使用它编译的大多数内容都可以使用其他流行的编译器(如 gcc/g++)进行编译(反之亦然)。