编译代码时出现类型定义错误
问题描述:
我在另一个可以工作的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;
答
是GCC抱怨的错误是,有一个unknown type name ‘dint’
。
在C++中没有基本类型dint
,所以它必须在某个地方声明。
在您从中复制的代码版本中,可能是typedef
或您没有includ
ed的头文件。
从稍微看一下,我没有看到pintos中的dint
的任何引用,所以它可能在原始文件中的某处定义。
查找这样一行:
typdef int dint;
+0
...或者“dint”中的“d”是开头的错字,发生在代码的复制和粘贴过程中,或者某些情况下... – DevSolar
凡定义'dint'? – stark
int函数: void * functionC(void * ptr) { \t int * pointer =(int *)ptr; pthread_mutex_lock(&mutex1); \t \t的for(int i =指针[0];我 pithoro
不要在代码中粘贴代码,因为代码不可读。请使用代码编辑您的文章(并设置代码格式)。 –