Forum: Compiler & IDEs Initialisierung eines Arrays bei der Deklaration


von Michael L. (eagle87)


Lesenswert?

Hallo,
gibt es eine Möglichkeit ein Array variabler Größe direkt bei der 
Deklaration zu initialisieren? Im konkreten Fall geht es um ein 
statisches Array in dem von Anfang an lauter Einsen stehen sollen. Die 
Anzahl der Zellen wird durch ein #define festgelegt.
1
#define inputcount ...
1
static int16_t time[inputcount]=...;

Gruß
Michael

von Ralf G. (ralg)


Lesenswert?

Also
1
#define inputcount 99
und dann stehen im Array hastdunichtgesehen plötzlich 99 Einsen?

von Michael L. (eagle87)


Lesenswert?

Ralf G. schrieb:
> und dann stehen im Array hastdunichtgesehen plötzlich 99 Einsen?

Und was soll mir das jetzt sagen?

von Ralf G. (ralg)


Lesenswert?

Michael L. schrieb:
> Und was soll mir das jetzt sagen?

Nichts, das war 'ne Frage! Falls die Antwort 'ja' ist: Glaub' nicht, 
dass das geht. Ich weiß nicht, ob man Makros beibringen kann, sich immer 
wieder selbst aufzurufen... Das wäre dann ein Ansatz.

von AVerr (Gast)


Lesenswert?

Mittels GCC extensions funktionierte es so:
1
static int16_t time[inputcount] = { [0 .. inputcount] = 1};

von AVerr (Gast)


Lesenswert?

muss natürlich [0 .. inputcount-1] heißen :)

von Michael L. (eagle87)


Lesenswert?

Hallo AVerr,
mit
1
static int16_t time[inputcount]={[0 ... inputcount-1]=1};
kompilierts ohne Fehler. Danke für den Tipp.

Gruß
Michael

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.