2017-10-09 2 views
-2

이 코드는 작동하는 다른 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 a 함수 : void * functionC (void * ptr) { \t int * pointer = (int *) ptr; pthread_mutex_lock (& ​​mutex1); 위한 \t \t (INT 포인터 I = [0] I <= 포인터 [1] 나가 ++) { \t \t \t \t \t 포인터 [2] + = myArray의 [I]; \t \t} \t pthread_mutex_unlock (& ​​mutex1); } – pithoro

+1

코드를 읽을 수 없으므로 주석 안에 코드를 붙여 넣지 마십시오. 코드를 사용하여 게시물을 수정하고 코드를 형식화하십시오. –

답변

1

GCC는 불평되는 오류는 unknown type name ‘dint’ 있다는 것입니다.

C++에는 기본 유형 dint이 없으므로 어딘가에 선언해야합니다.

복사하려는 코드 버전에 typedef 또는 includ이없는 헤더 파일이있을 수 있습니다.

약간 보면, 나는 핀토에 dint에 대한 참조를 볼 수 없으므로 아마 원래 파일의 어딘가에 정의되어있을 것입니다.

같은 줄을 찾습니다이 :

typdef int dint; 
+0

... 또는 "dint"의 "d"는 오타 (typo)입니다. 그 코드는 복사 및 붙여 넣기 중에 발생합니다 ... – DevSolar