Turbo C的替代方案

4
我的大学正在举办一场编程竞赛,并决定支持Turbo C(16位DOS版本)作为有效的编程环境。我刚刚看到PC^2,这个软件将用于自动评判比赛,不支持16位程序。
那么,有没有替代Turbo C的编译器可以使用呢?我需要相同的头文件,并且编译器需要支持Turbo C支持的所有过时C标准。但输出需要是32位的。是否有编译器可以满足这些条件?

1
所有参赛者都会遇到这个兼容性问题吗?Turbo C是唯一支持的编程环境吗? - Greg Hewgill
2
如果他们的自动评测软件不支持Turbo C,那么似乎他们并没有真正支持Turbo C。 - Greg Hewgill
1
你为什么不选择使用gcc或其他编译器,而是使用Turbo C!? - Earlz
1
什么?仅仅因为他们允许使用Turbo C并不意味着需要使用Turbo C或遵守Turbo C的规则。 - jamesdlin
4
@Asad:你已经支持了几个现代编译器,它们中的所有编译器都至少有一些免费选项。为什么不试着说服有权力的人放弃对Turbo C的支持呢? - Michael Burr
显示剩余2条评论
3个回答

5
可移植的C程序可以使用许多不同的免费编译器和非免费编译器编写。
为了保持兼容性,在Linux机器上使用gcc是没有错的选择。如果它不能在GCC上运行,那么你可能会遇到问题。
在Windows中,Microsoft C编译器通常被认为是可以接受的,但如果你使用MS Visual Studio(大多数学校都有安装),那么你需要非常小心,确保你正在编译ANSI-C,而不是后续版本的C甚至是C ++。当我还在教学时,学生们经常错过这个选项,导致自动化测试出现问题。这里有一些关于如何在Visual Studio 2005中进行此操作的说明how to do this with Visual Studio 2005,你可以在后续版本中找到类似的功能。

我愿意使用gcc,因为通过命令行选项进行配置是最容易的。但是它是否支持Turbo C附带的所有头文件,例如conio.h?我只是问一下,因为当我第一次从Turbo C转到gcc时尝试过这样做,并且遇到了许多头文件的问题。如果我没记错的话,conio.h不是ANSI-C标准的一部分吧? - Jibran
@Asad 你在使用 conio!?那是一个DOS头文件。 - Earlz
2
我建议你回去学习标准C语言,也许还可以学习一些不错的库,比如ncurses和pthreads。"我们已经不在实模式下了!" - Earlz
@Earlz:就像我说的,这不是一个 ANSI-C 的头文件。而且我认为你没有正确阅读问题。我没有使用 conio。编程竞赛的参赛者在使用它。我正在尝试找到一种替代编译器,可以通过编译成 32 位来与 PC^2 兼容。 - Jibran

2

我知道这个问题已经有了答案,但是对于任何在SO上寻找Turbo C替代品来构建16位DOS应用程序的人,我想指出OpenWatcom是一个非常好的替代品。我一直在Windows 7下使用它来构建16位DOS应用程序,为运行DOS 6.22的嵌入式目标取得了巨大成功。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接