Forum: Compiler & IDEs Konstante definieren (C-Frage)


von humpfkrömekröm (Gast)


Lesenswert?

Moin,

Wie deklariert man Konstanten eigentlich richtig? In folgendem Code 
meckert der Compiler und ich sehe meinen Fehler nicht.
1
ISR( TIMER1_OVF_vect )
2
{
3
  uint16_t randomrangevalue;
4
  const  uint16_t pause_type1_length_min = 20;
5
  const  uint16_t pause_type1_length_max = 2000;
6
  static uint16_t pause_type1_length = pause_type1_length_min; // Fehler in dieser Zeile "..is not constant"

es kommt der Fehler "../test03.c:31: error: initializer element is not 
constant"


Gruß Krömer

von johnny.m (Gast)


Lesenswert?

Warum machst Du das nicht mit einem Makro?
1
#define pause_type1_length_min 20
2
#define pause_type1_length_max 2000

  

von humpfkrömekröm (Gast)


Lesenswert?

grml...

ich möchte echt mal gerne wissen, was ich vorhin falsch gemacht hatte. 
Ich hatte das nämlich zunächst mit define machen wollen aber es kam ein 
Fehler mit dem ich nichts anfangen konnte. Jetzt habe ich deine zwei 
Zeilen direkt kopiert und jetzt läuft es auf einmal.. grübel

danke dir auf jeden Fall für die schnelle Hilfe!

von johnny.m (Gast)


Lesenswert?

Wie sah das denn bei Dir vorher mit dem #define aus? Hast Du etwa ein 
Semikolon hinter das "#define ..." geschrieben? Das wäre so ein 
typischer Fehler...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das mit dem const würde nur bei C++ funktionieren.  Bei C sind
Konstanten erst einmal Variablen, die read-only sind, damit taugen
sie nicht als initializer.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.