如何指定GNU C的属性



在GUN C手册6.30声明函数属性中,它声明:

您还可以在每个关键字的前面和后面使用__指定属性。这允许您在头文件中使用它们,而不必担心可能存在同名宏。例如,您可以使用__noreturn__而不是noreturn

这是否意味着用户可以指定自定义属性?或者还有什么?我真的很困惑,有人能帮我吗,或者给我一些样品?

它说的是头文件可能已经做了:

#define noreturn 3

如果你试图声明一个函数为:

void fatal () __attribute__ ((noreturn));

将被处理,就好像你写了:

void fatal () __attribute__ ((3));

这不是你想要的。所以你可以这样写:

void fatal () __attribute__ ((__noreturn__));

这是安全的,因为用户不允许定义名称以两个下划线开头的宏,这些名称为实现保留。参见在c++标识符中使用下划线有哪些规则?

相关内容

  • 没有找到相关文章

最新更新