gpt4 book ai didi

c - 如果 C11 关键字 '_Atomic' 后跟空格和左括号,是否算作类型限定符或说明符?

转载 作者:太空狗 更新时间:2023-10-29 16:59:54 24 4
gpt4 key购买 nike

阅读 C11 标准的 N1570 草案,它在 p. 121 关于_Atomic 关键字:

If the _Atomic keyword is immediately followed by a left parenthesis, it is interpreted as a type specifier (with a type name), not as a type qualifier.

现在我想知道,在这种情况下,什么构成“立即”?

我觉得措辞很含糊:标准是否保证以下两行代码始终相同?

明确的:

static _Atomic(type) var;

模棱两可的:

static _Atomic (type) var;

插入空格会破坏左括号的即时性吗?

虽然在第一种情况下,关键字始终是类型说明符,但在第二种情况下,我不确定它是类型说明符还是类型限定符,以及这是一个解释问题还是由标准明确定义。我还指的是“var”是指针的情况。

最佳答案

_Atomic 作为类型说明符或类型限定符分别显示在第 6.7.2.4 节和 6.7.3 节的语法中。文法用token表示(文法的终结符是C规范定义的token),翻译阶段7(5.1.1.2条款)分析文法:

White-space characters separating tokens are no longer significant. Each preprocessing token is converted into a token. The resulting tokens are syntactically and semantically analyzed and translated as a translation unit.

因此,空白是无关紧要的。

关于c - 如果 C11 关键字 '_Atomic' 后跟空格和左括号,是否算作类型限定符或说明符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57046444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com