Ist sizeof (enum) == sizeof (int) immer?

Ist sizeof (enum) == sizeof (int) immer?

Oder ist es vom Compiler abhängig?Ist es falsch zu sagen, dass Compiler für Wortlängen optimiert sind (Speicherausrichtung), dh y int ist die Wortgröße auf einem bestimmten Compiler? Bedeutet das, dass es keine Verarbeitungsstrafe gibt, wenn ich Aufzählungen verwende, da diese wortgleich sind?Ist es nicht besser, wenn ich alle Rückgabecodes in eine Aufzählung schreibe, da ich mir keine Gedanken über die Werte mache, die sie erhalten, sondern nur über die Namen, während ich die Rückgabetypen überprüfe? In diesem Fall ist #DEFINE nicht besser, da dadurch Speicherplatz gespart wird.

Was ist die übliche Praxis? Wenn ich diese Rückgabetypen über ein Netzwerk transportieren muss und eine gewisse Verarbeitung am anderen Ende erfolgen muss, welche Enums / # define / const ints würden Sie bevorzugen.

BEARBEITEN - Nur im Internet nachsehen, da Complier keine symbolischen Verknüpfungsmakros sind. Wie debuggen die Benutzer dann und vergleichen den ganzzahligen Wert mit der Headerdatei?

Aus den Antworten: Ich füge diese Zeile unten hinzu, da ich Erläuterungen benötige.

"Es ist also implementierungsdefiniert und sizeof (enum)könnte sein gleich sizeof (char), d. h.

Bedeutet das nicht, dass der Compiler den Wertebereich in Aufzählungen überprüft und dann Speicher zuweist? Das glaube ich nicht, natürlich weiß ich es nicht. Kann mir bitte jemand erklären, was "sein könnte".

Antworten auf die Frage(5)

Ihre Antwort auf die Frage