Turbo c++和代码块

Turbo C++ and Code blocks

本文关键字:代码 c++ Turbo      更新时间:2023-10-16

为什么我应该在代码块中使用名称空间和int main,而在turbo c++中没有名称空间,我可以使用void main而不返回我在学校学到的任何值。是编译器不同,是c++版本不同吗?

首先,Turbo c++是一个编译器与针对MS-Windows的IDE捆绑在一起。Code Block是一个支持多个编译器和平台的IDE。这是这两个工具之间的主要区别,所以你不是在比较完全相同的东西。

其次,intmain的标准返回值,这也是C和c++中程序源代码入口点(1)的标准约定。在标准模式下运行的c++编译器期望以这种方式编写程序,因此如果您想使用符合标准的c++编译器,那么您的程序应该符合这些期望,这是Code Block默认支持的。然而,我很确定你的代码配置代码块使用一个特定的编译器在一个不兼容的模式(或简单地一个不兼容的编译器),因为它是一个灵活的IDE;您可以将其设置为使用Turbo c++,从而使其编译非ANSI c++。也就是说,我不认为Turbo c++不支持ANSI c++。

第三,命名空间是c++的一个特性,如果你想使用标准c++库,你必须使用它,但没有什么能强迫你不这样做。


(1)名称是一种约定,但函数本身显然是必要的

可能您在一个非常旧的编译器版本上工作,它不完全实现C++规范,或者换句话说,它不符合C++。在dos时代编写的旧版本可能允许你做许多讨厌的/非标准的事情。

C++中,整个c++标准库在namespace std中定义。您必须使用using和/或完全限定名(带范围解析)来访问它们。

c++中的

main必须返回具有两个签名之一的int

int main();
int main(int argc, char *argv[]);

简而言之,你的用例turbo C++做错了,而Codeblocks是正确的。