红联Linux门户
Linux帮助

linux 多线程 编程 奇怪的错误 谁能帮忙??

发布时间:2011-04-17 11:56:13来源:红联作者:第十七次
最近在ubuntu10.10下写了个简单的服务器程序,但出现了个奇怪的错误,至今没有找到原因,具体情况如下:

主线程监听端口数据,采用select方法,次线程接受命令用于控制串口的数据输出,于是我想到了用结构做全局变量,让线程间共享数据(不知道数据共享一般是怎么处理的,我多数情况下用这方式)。 但在次线程里使用时出现了问题(主线程和次线程不在同一文件内),提示如下:
error: request for member ‘ctrollKind’ in something not a structure or union
error: request for member ‘ctrollNum’ in something not a structure or union
error: request for member ‘ctrollType’ in something not a structure or union

结构在主线程的头文件内声明,在主线程里定义,代码如下所示:
typedef struct CTROLL CTR;
struct CTROLL
{
int ctrollKind; /*ctroll the motor or led*/
int ctrollType; /*the ctroll kind turn on or turn off*/
int ctrollNum; /*the number of the led*/
};

结构定义在主线程里,代码如下:
CTR ctroll;

次线程使用时代码如下:
extern ctroll;
。。。
ctr_kind = ctroll.ctrollKind;
num = ctroll.ctrollNum;
action = ctroll.ctrollType;

编译时就出现上述问题,奇怪的是我用同样的方法,共享了另外一个变量却没有提示类似错误。
检查了很久也上网找了很多相关信息,没有结果,这几天搞迷糊了。谁能帮帮忙。
文章评论

共有 0 条评论