gpt4 book ai didi

c++ - 这是什么 (( ))?

转载 作者:IT老高 更新时间:2023-10-28 11:58:06 24 4
gpt4 key购买 nike

在浏览 gcc 编译器源代码 (gcc/c-family/c-pragma.c) 时,我看到了:

typedef struct GTY(()) align_stack {
int alignment;
tree id;
struct align_stack * prev;
} align_stack;

尽管我已经有很多年的 C 编程年限,但这些位:(()) 对我来说是完全未知的。有人可以解释一下他们的意思吗? Google 似乎没有找到它。

最佳答案

它们是 GCC 内部的“魔法”,即编译器实现本身的一部分。

this page其中谈到了它们的用途。该宏用于标记用于垃圾收集目的的类型。也可以有参数,见 this page了解详情。

更新::正如 Drew Dorman 所指出的那样在评论中,实际的双括号不是 GNU 实现的“内部性”的一部分;当您想要将整个参数列表收集到被调用宏的单个参数中时,它们通常被使用。这有时在包装时很有用,例如printf() 也是。 See this question, for more on this technique .

关于c++ - 这是什么 (( ))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891052/

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