我正在为虚构的DCPU-16 CPU编写一个C编译器(它将用于0x10C游戏)。在这个游戏世界里,为系统编写的任何原始软件都是在1988年之前(或期间)开发的:所以我试图编写我的编译器,就像它在1985-1988年之间被编码一样。我已经得到了C89标准的副本,但是我想知道在此之前的普通编译器与这个时期的标准和常见的编码风格有什么不同。
到目前为止,这就是我所假设的:
其他我想知道的事情:
发布于 2013-01-30 19:30:07
当没有明确的标准时,人们只关心得到它的“工作”。它适用于任何东西,而不仅仅是C语言。因此,很难区分所有预标准编码风格/命名约定等与标准的编码风格/命名约定之间的区别。我想大多数人都会追随K&R书中的任何东西(第一和第二本)。
作为样品..。
你可以看看Dennis的网站,他在那里给出了一些例子:早期的C编译器和语言。您可以通过该网站搜索更多相关信息。但我不认为你的所有问题都能得到答案。
发布于 2014-08-12 22:02:29
你可以做的一件奇怪的丑恶的事情,这可能会在游戏中造成一个整洁的“谜题”,那就是早期的预处理器实际上会扫描并替换字符串文字内容中定义的宏!
所以,例如
#define foo bar
char *s = "That would be a foolish thing to do!";会被预处理到
char *s = "That would be a barlish thing to do!";发布于 2019-05-27 11:41:35
负责规范C语言的ANSI X3J11委员会于1983年成立,并于1985年4月发表了第一稿。根据EricS.Raymond的说法,“C语言在本质上是稳定的,因为X3J11委员会关于拟议标准草案的工作文件的副本在1985-1986年向编译器实现者表明了委员会的意图”。1
从85-86年的时间框架(如格子C2或MicrosoftC4.0 3 )研究编译器手册,可以看出这些编译器已经开始支持大多数ANSI C89。最突出的遗漏是缺乏const和volatile支持(尽管Microsoft已经将这些添加到保留关键字列表中)和继续使用"K&R"-style函数定义。
因此,到1988年,在野外看到ANSI C89代码并不是不合理的,尽管标准本身还没有发布--仅仅是因为编译器编写者已经将部分标准纳入他们的编译器中已有几年了。
1
2。
3.
https://stackoverflow.com/questions/14611871
复制相似问题