invalid conversion from ‘void*’ to ‘void* (*)

原来定义如下:

void recMessage( );

原调用如下:

if((pthread_create(&recthread,NULL,(void *)recMessage,NULL))!=0)

在gcc下编译没错,g++下编译会报上面错误,究其原因就是C语言编译器允许隐含性的将一个通用指针转换为任意类型的指针,而C++不允许。

修改如下:

void *recMessage(void *ptr)

if((pthread_create(&recthread,NULL,recMessage,NULL))!=0)


你可能感兴趣的:(编程BUG记录)