Turbo c++和代码块
Turbo C++ and Code blocks
为什么我应该在代码块中使用名称空间和int main,而在turbo c++中没有名称空间,我可以使用void main而不返回我在学校学到的任何值。是编译器不同,是c++版本不同吗?
首先,Turbo c++是一个编译器与针对MS-Windows的IDE捆绑在一起。Code Block是一个支持多个编译器和平台的IDE。这是这两个工具之间的主要区别,所以你不是在比较完全相同的东西。
其次,int
是main
的标准返回值,这也是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
和/或完全限定名(带范围解析)来访问它们。
main
必须返回具有两个签名之一的int
int main();
int main(int argc, char *argv[]);
简而言之,你的用例turbo C++
做错了,而Codeblocks
是正确的。
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 为什么在这个代码结束循环中没有得到结束
- 在c代码之间共享数据的最佳方式
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值