C -> enum -> Speicher

Gast #5982233
Lesenswert?

Guten Morgen,
1
  /*
2
  *  Welcher Datentyp wird gesendet?
3
  *  siehe "Cmd_Data_Type_Enum"
4
  */
5
  enum Cmd_Data_Type_Enum  eDataType;
6
  
7
  /*
8
  *  Nachrichten Identifikation
9
  *  Die Identifikations Codes sind in 
10
  *  "Cmd_Ident_Enum" einzutragen
11
  */
12
  enum Cmd_Ident_Enum  eMessageID;

Eine Frage..
Ist "enum Cmd_Data_Type_Enum eDataType" das jetzt eine Variable oder 
einfach nur eine Aufzählung "enum". Ich kann "eDataType" Werte zuweisen 
ohne das der Compiler meckert.
Gast #5982296
Lesenswert?

Cmd_Data_Type_Enum und Cmd_Ident_Enum sind Enum-Typen.
eDataType und eMessageID sind Variablen.
Wieviel Platz der Compiler dafür lässt ist seine Sache. Die 
Kommandozeilenoption, die hier genannt wurde, bezieht sich auch auf eine 
bestimmte Compilerfamilie.
Wenn Du das Enum in eine Struct steckst, kannst Du die Anzahl der Bits 
angeben, aber dann bist Du auch in der Verantwortung, dass alle 
möglichen Werte hinein passen.
Gast #5983214
Lesenswert?

Peddi schrieb:
> Ich kann "eDataType" Werte zuweisen
> ohne das der Compiler meckert.

Na klar, C ist ja sch...

Du kannst dem Datentyp enum einfach int zuweisen, abe auch boolean 
geht. Oder boolean einen float zuweisen. Alles erlaubt, aber natürlich 
total sinnbefreit!
Moderator Persönliche Seite #5983218
Lesenswert?

so ist das in C schrieb:

> Du kannst dem Datentyp enum einfach int zuweisen, abe auch boolean
> geht. Oder boolean einen float zuweisen. Alles erlaubt, aber natürlich
> total sinnbefreit!

Sinnbefreit ist dein Kommentar.

Ein enum ist in C ein Alias für einen Ganzzahltyp.

Wenn du einen float zuweist, wird der Inhalt des floats auf den 
Ganzzahlanteil reduziert, wie bei jeder anderen Zuweisung eines floats 
auf einen Ganzzahltyp – und nicht etwa das Bitmuster kopiert oder sowas.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren