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