编译代码时出现类型定义错误

问题描述:

我在另一个可以工作的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); 
} 

我在我的机器上得到的错误是:

[email protected]:~/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; 
+4

凡定义'dint'? – stark

+0

int函数: void * functionC(void * ptr) { \t int * pointer =(int *)ptr; pthread_mutex_lock(&mutex1); \t \t的for(int i =指针[0];我 pithoro

+1

不要在代码中粘贴代码,因为代码不可读。请使用代码编辑您的文章(并设置代码格式)。 –

是GCC抱怨的错误是,有一个unknown type name ‘dint’

在C++中没有基本类型dint,所以它必须在某个地方声明。

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

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

查找这样一行:

typdef int dint; 
+0

...或者“dint”中的“d”是开头的错字,发生在代码的复制和粘贴过程中,或者某些情况下... – DevSolar