如何解决Cgcc警告:调用pthread_cleanup_push时从不兼容的指针类型进行初始化
| 如果相关,在Ubuntu Linux 9.04下的gcc版本4.3.3。 这是令人反感的代码:pthread_cleanup_push(ctl_cleanup,NULL);
将ctl_cleanup()定义为
void* ctl_cleanup(void *arg);
在类似情况下,还有其他情况会弹出此警告。如果我拨打类似的电话,也会出现警告
pthread_cleanup_push(pthread_mutex_unlock,(void *)&m);
其中m为pthread_mutex_t类型。该警告显示为:
警告:从不兼容的指针类型初始化
我不明白我已经在没有警告的情况下使用了空指针(例如,在将参数传递给pthread时)传递了其他信息。有人可以帮我吗?
解决方法
void ctl_cleanup(void *arg);
以上是您正在寻找的原型。它返回void,而不是指向void的指针。
函数中多余的*是因为它需要一个指向带有一个void *参数的函数的指针,该参数返回void。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。