Guten Morgen,
ich habe ein konstantes Array, das ich indexweise beschreiben will:
enum zahlen_e
{
e_eins,
e_zwei,
e_drei,
};
const int lookuptable[] =
{
[e_eins]{ 1 },
[e_zwei]{ 2 },
[e_drei]{ 3 },
};
Es geht. Ich habe es durch ausprobieren herausgefunden, weil bei structs
benannte Fehler ja ähnlich gehen. Wie heißt dieses Konstrukt? Ich suche
einen Suchbegreiff, um im Standard/in den GNU-Erweiterungen Näheres
anzugucken.
Das sagt der gcc, wenn man nen Standard vorgibt und Warnungen einschaltet:
1 | warning: obsolete use of designated initializer without '=' [-Wpedantic] |
2 | 13 | [e_eins]{ 1 },
|
3 | | ^ |
4 | |
5 | warning: braces around scalar initializer |
6 | 13 | [e_eins]{ 1 },
|
Vllt. hilft dir das beim suchen.
Das Stichwort "designated initializer" nannte mh bereits. Die richtige Syntax sieht so aus:
1 | const int lookuptable[] = |
2 | {
|
3 | [e_eins] = 1, |
4 | [e_zwei] = 2, |
5 | [e_drei] = 3, |
6 | };
|
Im ISO-Standard (C11 und C18): 6.7.9 Initialization
Beitrag #5923408 wurde von einem Moderator gelöscht.
mh schrieb: > warning: obsolete use of designated initializer without '=' [-Wpedantic] Okay, diese Warnung gibt mein nicht mehr ganz taufrischer GCC nicht, trotz Wpedantic. mh schrieb: > designated initializer Danke für das Stichwort!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.