Vermeiden Sie Kollisionen mit Namen, die mit enum in C (C99)

enum Elemente " Namen sind anfällig für überschneidungen/kollidieren mit den beiden anderen enum-Elemente-Namen, Variablen-Namen, etc...

enum Fruit
{
    apple,
    orange
};
typedef enum Fruit Fruit;


enum Color
{
    red,
    orange //<-- ERROR
};
typedef enum Color Color;


char apple='a'; //<-- ERROR

Gibt es eine C99-konforme Lösung, um zu vermeiden Kollision anderen als Präfix jedem enum-element einen Namen?


Seite Hinweis: hat diese Frage bereits eine Antwort für C++

Wie, um Namenskonflikte zu vermeiden für zwei enum-Werte mit dem gleichen Namen in C++?

Ich bin auf der Suche nach C99-Lösung.

Ja, verwenden Sie einen passenden Namen wie color_orange und fruit_orange. Es sollten auch vermeiden, die Verwirrung beim Lesen.
Gibt es eine [...] Lösung andere als ein Präfix jedes enum element name ?
Vielleicht, aber es wäre wahrscheinlich eine schlechte Lösung, das ist eine gute Lösung, die hilft, die Lesbarkeit zu.
gibt es etwas, das besser lesbar ist als Fruit f = orange; und Color c = orange; ? Es ist ordentlich und ohne Zweifel als f ist ein Obst-und c eine Farbe
Ja Fruit fruit = FruitOrange;. Ach ja, und in diesem Fall switch (fruit) {case FruitOrange: break ...}. Wenn es viele Früchte, die Sie gerne Präfix. Auch f werden kann, für file, f**ck, und viele andere wrods, die beginnen mit f fruit statt einfach fruit.

InformationsquelleAutor Paolo | 2016-02-13

Schreibe einen Kommentar