pthread_cleanup_push的小问题?

yjdabc 2010-07-07 01:19:53
学习APU线程一章,代码

编译出现如下错误:


不理解这是怎么回事,请大家看看,谢谢!
...全文
63 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angecycy 2010-07-09
  • 打赏
  • 举报
回复
1.At weekends,she often helps her mother do some cleaning.为何"clean"要加"ing"?2.求"征询网友"的各种写法.
brookmill 2010-07-07
  • 打赏
  • 举报
回复
从gcc报的错误来看,他认为到了第22行fn_l这个函数还没有结束,原因就是少了个 }while(0);
gcc把pthread_clean_pop(0)当成了一个函数调用,而且很可能给了它一个默认声明。
如果gcc -Wall,会有类似这样的一个警告:
warning: implicit declaration of function pthread_clean_pop
brookmill 2010-07-07
  • 打赏
  • 举报
回复
19行应该是pthread_cleanup_pop

pthread_cleanup_push 是个宏, do { ...
pthread_cleanup_pop 也是个宏, ... } while (0);
这两个如果没有配对使用,结果就会有一个 do 找不到对应的while
楼主可以自己看看pthread.h里面的定义,或者看看gcc -E宏替换之后的结果。
yjdabc 2010-07-07
  • 打赏
  • 举报
回复
难道没有人知道?

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧