【发布时间】:2013-11-09 03:15:43
【问题描述】:
我是 C 的新手,谁能帮帮我?
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <windows.h>
struct New
{
char a;
int b;
};
void *Print_Func (void* Ptr)
{
Sleep(5);
printf("%d\n",Ptr.a);
printf("%d\n",Ptr.b);
}
int main (void)
{
pthread_t Thread1;
while(1)
{
struct New Flag;
Flag.a=5;
Flag.b=1234567;
pthread_create(&Thread1,NULL,Print_Func,&Flag);
pthread_join(Thread1,NULL);
printf("\n");
}
system("pause>nul");
}
为什么编译器总是报告
错误:在非结构或联合中请求成员“a”
错误:在不是结构或联合的东西中请求成员“b”
环境。 : Windows7 C:B mingw32-gcc.exe
谢谢
【问题讨论】:
-
欢迎来到 Stack Overflow。请尽快阅读About 页面。请注意,您只能将相同的变量 Flag 传递给
pthread_create(),因为您不会更改线程之间的值并且线程不会修改它。很多时候,您需要为每个线程传递一个单独的值,因为每个线程要执行的任务略有不同,而参数会告诉它不同之处。