4 mutex initialization pthreads
我在老虎身上使用xcode 2.4.1.当我在下面做的一切都很好.当我做
pthread_mutex_t mute;
ImageMan()
{
dibSize=0;
mute = PTHREAD_MUTEX_INITIALIZER;
}
Run Code Online (Sandbox Code Playgroud)
我得到了这两个错误
error: expected primary-expression before '{' token
error: expected `;' before '{' token
Run Code Online (Sandbox Code Playgroud)
我不知道为什么.但是,如果我做pthread_mutex_t静音= PTHREAD_MUTEX_INITIALIZER; 它工作正常.为什么?
-edit-我没有运行它,但这似乎编译.为什么?是吧?
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
mute = mutex;
Run Code Online (Sandbox Code Playgroud)
geo*_*car 16
PTHREAD_MUTEX_INITIALIZER是一个常量初始值设定项,仅在初始化时有效.它是一个宏,不一定扩展为整数类型.
你mute=mutex;是无效的 - 你应该使用:
pthread_mutex_init(&mute, NULL);
Run Code Online (Sandbox Code Playgroud)
或者如果你动态分配互斥量:
m = malloc(sizeof(pthread_mutex_t)));
pthread_mutex_init(m, NULL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12955 次 |
| 最近记录: |