使用 Turbo C 和 GNU C/C++ 有什么区别?

What is the difference between using Turbo C and GNU C/C++?

我只想知道使用Turbo C和GNU有什么区别C/C++?有什么真正的区别吗,或者如果我提交 .C 文件是一样的吗?

Is there any real difference, or if I submit the .C file would that be the same thing?

是的,会有很多差异,而且几乎可以肯定不是一回事。 Turbo C/C++ 是几十年前发布的,不符合任何标准定义,并且从未就这些进行更新。

从命名头文件的差异开始,例如iostream.h 对比 iostream,并以缺乏对现代 C++ 语法糖(如基于范围的 for 循环)的支持而告终。

扔掉它。 Turbo C/C++ 对于现在学习语言的任何东西都没有用(即使在印度 "professors"1 认为是,并坚持使用它)。


1) 我们真的应该发起一场运动来说服印度教育 public 当局停止教授 Turbo 的用法 C/C++。对于一个在火箭科学方面与世界上其他科技领先国家竞争的国家来说,这只是一种耻辱。
没有理由保留它。有许多现代编译器和 IDE 无需任何额外费用即可使用,我看不出有任何理由应该继续这种限制,或者他们认为对教育有价值的东西。

请记住,编程语言是一种规范(写在某些文档中)。它不是软件。

TurboC

已过时,并且不支持(据我所知,甚至不声称支持)最新的语言标准,例如 C11C++11C++14TurboC 接受的语言比最近的语言标准指定的更差。很多时候,为 TurboC 编写的一些代码不符合标准,甚至不会在符合标准的实现(如 GCC)上编译。 TurboC 是专有软件;你看不到它的源代码(合法)。

海湾合作委员会

支持(几乎所有)最新标准,如 C11C++14GCC为免费软件,您可以合法下载、学习、完善其源代码。阅读什么是免费软件,为什么它对社会如此重要?单单这个事实就让我更喜欢 GCC.

TurboC 生成糟糕的可执行代码(其性能不是很好) GCC 能够优化(当被要求时,例如 g++ -O2 ......)并且可以生成具有表现不错。

所以你应该为你的项目使用 GCC,而不是 TurboC

提示:使用 g++ -Wall -Wextra -g 进行编译(以获取所有警告和调试信息)。改进代码,直到你没有收到警告。然后使用调试器 (gdb) 直到你相信你没有错误。对于基准测试,添加一个优化标志,如 -O2(甚至 -O3 -march=native

将 GCC 与优秀的编辑器(例如 emacs)、版本控制系统(例如 git)和构建自动化工具(例如 GNU make)结合使用

Clang/LLVM

是(主要)符合标准的免费软件 C 和 C++ 编译器,您可以使用它代替 GCC。