C翻译阶段的具体例子

根据C11标准(5.1.1.2翻译阶段),有8个翻译阶段。 任何人都可以给出每个阶段的具体例子。

例如在第一阶段有:

物理源文件多字节字符以实​​现定义的方式映射到源字符集...

所以我可以举一个例子,说明执行该映射时会发生什么,以及其他阶段如何?


那么,第一阶段的一个例子就是将源代码存储为面向记录的格式,例如在大型机上的z / OS中。

这些数据集具有固定的记录大小,因此,如果您的数据集规格为FB80(固定,阻止,记录长度为80),则“行”:

int main (void)

将被存储为15个字符,随后是65个空格,并且不会换行。

第一阶段翻译将在记录中读取,可能会剥离尾部空格,然后添加换行符,然后将该行传递到下一个阶段。

按照标准,这也是处理三字母的阶段,例如将??(转换为[在不支持[字符]的3270终端上。

第五阶段的一个例子是如果您在z / OS上使用EBCDIC编写代码,但是为Linux / x86(使用ASCII / Unicode)交叉编译代码。

在这种情况下,字符串文字和字符常量中的源字符必须具有ASCII表示而不是EBCDIC。 否则,你可能会在你的Linux机器上得到一些真正奇怪的输出。

链接地址: http://www.djcxy.com/p/73289.html

上一篇: C translation phases concrete examples

下一篇: Translating source code into a foreign language