gpt4 book ai didi

c - __attribute__ 是否适用于声明中的所有变量?

转载 作者:太空狗 更新时间:2023-10-29 16:22:13 27 4
gpt4 key购买 nike

__attribute__ 指令是否适用于一行中声明的所有成员?


int a, b, c;

声明三个 int 变量。


int *a, b, c;

将变量“a”声明为指向 int 的指针,将 b 和 c 声明为 int。


int __attribute__((used)) a, b, c;

used 属性是应用于所有变量还是仅应用于 a

最佳答案

来自 GCC: Attribute-Syntax :

An attribute specifier list may appear immediately before a declarator (other than the first) in a comma-separated list of declarators in a declaration of more than one identifier using a single list of specifiers and qualifiers. Such attribute specifiers apply only to the identifier before whose declarator they appear. For example, in

__attribute__((noreturn)) void d0 (void),
     __attribute__((format(printf, 1, 2))) d1 (const char *, ...),
d2 (void);

the noreturn attribute applies to all the functions declared; the format attribute only applies to d1.


更正:正如评论所指出的,我之前的结论是不正确的。我没注意到除了第一部分

修改后的结论:

两者皆有

int __attribute__((used)) a, b, c;

__attribute__((used)) int a, b, c;

该属性适用于所有 a、b 和 c。

但如果是:

int a, __attribute__((used)) b, c;

该属性仅适用于 b

关于c - __attribute__ 是否适用于声明中的所有变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067318/

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