C 预处理器中的标记分隔符列表

问题描述 投票:0回答:1
#define foo 123

foo
_foo
->foo
&foo

在上述文件上运行

gcc -E
会输出以下内容:

123
_foo
->123
&123

这表明

_
不是标记分隔符,而
_foo
是一个完整的单词。 在哪里可以找到 C 预处理器的有效标记分隔符列表?

c c-preprocessor
1个回答
0
投票

我可能会被语言律师嘲笑。但这是我阅读规范的方式。

C/C++ 中的标识符标记(不包括字符串文字)是从行首或空格之后开始的任何序列,其中第一个字符是字母 (

a-z
A-Z
) 或下划线 (
_
) ) 后跟任意数量的字母、数字或下划线。换句话说,下划线像任何其他字母或数字一样使标记唯一化。

或者更正式地说,标识符标记是这个正则表达式:

[a-zA-Z_]([a-zA-Z0-9_])*

© www.soinside.com 2019 - 2024. All rights reserved.