2017-10-09 16 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

:のようなラインの

ルック? – stark

+0

int a関数: void * functionC(void * ptr) { \t int * pointer =(int *)ptr; pthread_mutex_lock(&mutex1);用 \t \t(INT I =ポインタ[0]; I <=ポインタ[1]; iは++) \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のピントを参照していないので、おそらく元のファイルのどこかで定義されています。

`dint`が定義されている
typdef int dint; 
+0

...または "dint"の "d"は、コードやコピーなどのコピー&ペーストで起きた誤植です。 – DevSolar

関連する問題