mikrocontroller.net

Forum: Compiler & IDEs Enum oder Char-Array


Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Angenommen ich habe 3 Textausgaben:

Rot, Gelb, Grün

und dazugehörig einen Zähler von 0..2

Je nach Zahlerstand soll eine Farbe ausgegeben werden.

Mache ich dies nun mit einem mehrdimensionalen Array

Farben[3][5];

oder über ein Enum?

Wie funktioniert das am Besten?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht so ähnlich:
int main( int nargs, char **args )
{
  char *Farben[] =
    {
      "Rot",
      "Gelb",
      "Gruen"
    };
  const size_t   nFarben = sizeof(Farben)/sizeof(Farben[0]);

  for( size_t i=0; i<20; ++i )
  {
    printf( "%s\n", Farben[i%nFarben] );
  }

  return 0;
}

Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Code!

Warum geht der Zähler der for-Schleife bis 20?

Gehts auch mit einem Enum?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theo schrieb:
> Danke für den Code!
>
> Warum geht der Zähler der for-Schleife bis 20?

Warum nicht? Kann auch eine andere Länge haben?

> Gehts auch mit einem Enum?

Was versprichst du dir davon?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theo schrieb:
> Warum geht der Zähler der for-Schleife bis 20?

Du hattest nichts davon gesagt, daß du 3071 haben willst.

>
> Gehts auch mit einem Enum?

Ja.
Wenn es in der Aufgabenstellung steht, geht es damit auch.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Enum und Strings sind 2 völlig verschiedenen Dinge. Man kann daher nicht 
das eine durch das andere ersetzen.

Enum sind einfach nur Defines von Integer-Werten:

http://home.fhtw-berlin.de/~junghans/cref/SYNTAX/enum.html


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.