__attribute__((unused)) 的含义

我在libuv的heap_inl.h中遇见了这样的代码:

#if defined(__GNUC__)
# define HEAP_EXPORT(declaration) __attribute__((unused)) static declaration
#else
# define HEAP_EXPORT(declaration) static declaration
#endif

这是我第一次遇见这个__attribute__((unused)) ,记录一下。

在C程序中,如果定义了一个静态函数,而没有去使用,编译时会有一个警告:

#include 

int main(void)
{
    printf("main\n");
}

static void a(void)
{
    printf("a\n");
}
$ gcc a.c -Wall
a.c:8:13: warning: 'a' defined but not used [-Wunused-function]
 static void a(void)
             ^

而使用attribute((unused))可以告诉编译器忽略此告警:

#include 

int main(void)
{
    printf("main\n");
}

__attribute__((unused)) static void a(void)
{
    printf("a\n");
}
$ gcc a.c -Wall

你可能感兴趣的:(遇到的问题s)