有人可以帮我知道是否可以向用于发送1>..\Code.asm(91): error A2071: initializer magnitude too large for specified size
1>..\Code.asm(91): error A2098: invalid operand for OFFSET
1>..\Code.asm(112): error A2098: invalid operand for OFFSET
的函数发送两个不同的变量吗?
pthread_create
是否可能具有这样的功能
void *handler(void *parameter){
//some code
return 0;
}
如果可能的话,如何与void *handler(void *parameter, void *parameter2){
//some code
return 0;
}
一起使用?
预先感谢。
答案 0 :(得分:2)
不。 start_routine
的{{1}}应该是pthread_create
形式的函数。
这是void *(*) (void *)
的原型。
pthread_create
创建线程时以
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
作为其唯一参数执行start_routine
如果要向arg
函数发送多个参数,则可以通过使handler
指向包含这些参数的结构的指针来实现。
例如,您可以执行以下操作:
arg
现在,您可以使用struct Params{
int i;
char c;
};
struct Params* pParams;
代替void* arg
。
答案 1 :(得分:1)
用作(void*)pParams
创建的线程的起点的函数必须接受单个pthread_create
作为参数并返回void *
。 / p>
您需要使用变量创建一个结构,然后将其传递给指针。
void *