编译代码时的类型定义错误

时间:2017-10-09 17:12:51

标签: c++ multithreading pintos

我已在其他可用的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;

1 个答案:

答案 0 :(得分:1)

gcc抱怨的错误是unknown type name ‘dint’

c ++中没有基本类型dint,因此必须在某处声明。

在您正在复制的代码版本中,可能是typedef或您没有includ编辑的头文件。

从一点看,我没有在pintos中看到任何dint的引用,所以它可能在原始文件的某处定义。

寻找类似的行:

typdef int dint;