我开始使用Turbo C 2.01作为业余爱好项目。是的,DOS版本。自1987年问世以来,我认为它不支持C90 ......除此之外。好吧,它的碎片。 volatile
关键字有效。并且不支持直接K& R;我尝试了K& R样式声明,出现错误。
所以,我想知道什么形式的C Turbo C使用。我确定它是非标准的,但它看起来有点一致,因为这是当天非常流行的编译器,我确信有一些信息收集......对吗?
答案 0 :(得分:8)
当时没有真正的标准,另外MS-DOS有自己的怪癖(即分段内存模型,以及使用它们的不同应用程序内存模型......)。
所以我认为可以肯定地说,Turbo C 2.01使用的是Turbo C 2.01方言。
关于支持C90,请注意标准显然尽力使现有的C代码与之兼容。因此,来自87的Turbo C可以用最小的变化构建大多数C90程序并不奇怪。
答案 1 :(得分:4)
根据wikipedia,原始的K& R非标准规格出现在78. ANSI X3J11委员会制定ANSI C89标准的起点是1983年,目标是
在Unix实现上建立基于C标准的C. X3J11的标准规范。
该标准随后被ISO采用为C90。但由于它广泛基于现有实现,因此该实现的扩展已经移植到其他实现中,如Borland的实现。
因此,87年的Borland C2.01已经包含了K& R C的大部分扩展,并且仅在2年后才被采用标准,这并不奇怪。