我已在其他可用的Linux环境中运行此代码,但是当我在我的机器上运行此代码时,它显示错误。
代码是:
void *functionC(void* ptr)
{
dint* pointer=(int*)ptr;
pthread_mutex_lock( &mutex1 );
int i;
for( i=pointer[0]; i <= pointer[1]; i++ )
{
sum += myarray[i];
}
pthread_mutex_unlock( &mutex1 );
}
我在机器上遇到的错误是:
aftab@aftab-VirtualBox:~/Downloads$ gcc -o out done1.c -lpthreads
done1.c: In function ‘functionC’:
done1.c:59:2: error: unknown type name ‘dint’
dint* pointer=(int*)ptr;
答案 0 :(得分:1)
gcc抱怨的错误是unknown type name ‘dint’
。
c ++中没有基本类型dint
,因此必须在某处声明。
在您正在复制的代码版本中,可能是typedef
或您没有includ
编辑的头文件。
从一点看,我没有在pintos中看到任何dint
的引用,所以它可能在原始文件的某处定义。
寻找类似的行:
typdef int dint;