在C语言的翻译阶段5和6中,什么时候空白显着?
回顾一下,标准中描述了阶段5-7:
现在我同意第7阶段的空白字符不再显着,但在阶段4之后已经无法摆脱它们了? 有没有一个例子,这会有所作为?
当然,应该认识到,删除分隔标记的空白字符在此阶段不起作用,因为阶段4之后的数据由预处理标记组成。 这个想法是在早期阶段摆脱分隔预处理令牌的空间。
考虑这个源代码
char* str = "some text" " with spaces";
在阶段5中,这被转换为这些令牌(每行一个令牌):
char
*
str
=
"some text"
" with spaces"
这里重要的是“一些文本”和“带空格”中的空格。
之后,令牌之间的所有空间(见上)都会被忽略。
如果你在步骤5之前删除空格,你会得到其他字符串文字,如“sometext”
链接地址: http://www.djcxy.com/p/73291.html上一篇: When are whitespace significant in translation phases 5 and 6 in C language?