3 Stimmen

Problem bei der Zuweisung eines Zeigers auf eine Enum-Variable in C

Ich erhalte die Warnung "Zuweisung von inkompatiblem Zeigertyp". Ich verstehe nicht, warum diese Warnung auftritt. Ich weiß nicht, als was ich die Variable "the_go_status" sonst deklarieren könnte, außer als Integer. (Hinweis: Dies ist nicht der gesamte Code, sondern nur eine vereinfachte Version, die ich zur Veranschaulichung des Problems veröffentlicht habe).

Die Warnung tritt in der letzten Zeile des Beispiels auf, das ich unten eingefügt habe.

//In a header file  
enum error_type  
{  
    ERR_1 = 0,  
    ERR_2 = 1,  
    ERR_3 = 2,  
    ERR_4 = 4,  
};  

//In a header file  
struct error_struct  
{  
   int value;  
   enum error_type *status;  
};  

//In a C file  
int the_go_status;  

the_go_status = ERR_1;  

//Have the error_struct "status" point to the address of "the_go_status"  
error_struct.status = &the_go_status;    //WARNING HERE!

0voto

Mikkel Lund Punkte 23

Der "the_go_status" sollte als "enum error_type" typisiert werden. Man könnte das enum typisieren

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X