繁体   English   中英

空白是否被视为类似于C语言的令牌?

[英]Is white space considered a token in C like languages?

空白是否被视为类似于C的语言中的一种令牌类型(特别是对C感兴趣)? K&R中的参考手册对此似乎有点含糊。

不,空格将不被视为标记。 http://c0x.coding-guidelines.com/6.4.html (标准文本草案,不幸的是,实际标准要花钱,而且没有开放链接):

 token: keyword identifier constant string-literal punctuator preprocessing-token: header-name identifier pp-number character-constant string-literal punctuator each non-white-space character that cannot be one of the above 

GCC不考虑空白令牌

空格分隔标记; 它本身并不是任何形式的令牌。 令牌不必用空格隔开,但是通常有必要避免歧义。

Visual Studio也不会:

令牌由空格字符和其他令牌(例如运算符和标点符号)定界(界定)。 解析代码时,除非您将空格字符用作分隔符或字符常量或字符串文字的组成部分,否则C编译器将忽略空格字符。

K&R A2.1令牌可能含糊不清,但与以下文本一致:

令牌共有六类:标识符,关键字,常量,字符串文字,运算符和其他分隔符。 空格,水平和垂直制表符,换行符以及如下所述的注释(统称为“空白”)将被忽略,除非它们将标记分开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM