今天,想把串口通信相关的东西,整合到串口类comm里面,pthread_create 是 POSIX 标准下创建线程的函数,函数原型是:
int pthread_create(pthread_t *thread, pthread_attr_t *attr, void*(*start_routine)(void *), void *arg);
在 C 中,这个函数使用很简单,只要定义一个参数和返回值均为 void * 类型的函数,使用函数名字作为参数即可。就算不完全符合,可以使用 (void *(*)(void *)) 将其强制转换为符合类型检查规格的函数指针。但是,类的非静态成员函数隐含 this 指针作为第一个参数,所以参数完全不可能转化为 void * 类型,必须申明为static类型 ,但是在qt2版本中,不支持static void *f(*)的指针函数,可改为一般静态成员函数 static void f(*);在thread_create()里面执行pthread_create()就可以了。
使用时:
comm *mycom;
mycom = new comm();
mycom->create_thread();
本文介绍如何将串口通信的功能整合进一个名为comm的类中,并详细解释了如何利用pthread_create函数创建线程来处理串口通信任务。特别讨论了在C++中使用非静态成员函数作为线程启动例程时的注意事项。

被折叠的 条评论
为什么被折叠?



