gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2)
c89
您好,
我正在创建一个线程来做一些工作。但是,定义是这样的:
void *thread_send_fd(void *data)
我正在创建这样的线程:
pthread_create(&thread_send, NULL, thread_send_fd, NULL)
但是,因为我没有实际使用void *数据,因为我没有传递任何参数。我一直警告自己厌倦了。
warning: unused parameter ‘data’ [-Wunused-parameter]
我不想更改我的cflags来停止这些警告,因为它可能会阻止真正的警告。
任何建议,
答案 0 :(得分:3)
您可以使用
__attribute__((unused))
或
(void)varname;
选择更容易的人
答案 1 :(得分:2)
你可以在函数中的某处使用它来关闭它
(void)data;
答案 2 :(得分:1)
答案 3 :(得分:0)
使用C ++。然后你可以写
void func(void *) // unnamed parameter
{
}
这是C ++的C类子集是更好的C的小方法之一。
用于抑制警告的C方法是特定于编译器的黑客攻击。 __attribute__
事物当然是公然的GCC特定的,并且没有要求将参数的值转换为(void)
的任何地方都会在每个编译器上关闭它。
在一些广泛移植的C代码库中,您可能会发现使用宏,如:
UNUSED_PARAM(varname);
适用于各种编译器,例如:
#define UNUSED_PARAM(X) ((void) X) /* for those compilers where that alone works */