Hat jemand eine Idee, wie man so etwas skalierbar und
weniger redundant hin bekommt?
Klar, ich könnte ein Script nehmen, das mir eine Liste
generiert und die als Header einbinden. Aber das wäre
eher zweite Wahl.
Aber ja, ne, schon klar: Es geht eigendlich nur um
schöneren Code, sonst nix :-)
Ich freue mich auf Eure Antworten.
Schönen Gruß, Dirk
MEMSET(3)
Bibliotheksfunktionen
MEMSET(3)
BEZEICHNUNG
memset - fülle Speicher mit einer Bytekonstante
ÜBERSICHT
#include <string.h>
void *memset(void *s, int c, size_t n);
BESCHREIBUNG
Die Funktion memset() schreibt n mal die Bytekonstante c in den
Speicherbereich, auf den s zeigt.
RÜCKGABEWERT
Die Routine memset() gibt einen Zeiger auf den Speicherbereich
zurück, auf den s zeigt.
KONFORM ZU
SVID 3, BSD 4.3, ISO 9899
SIEHE AUCH
bzero(3), swab(3).
GNU 14. Juni 1996
MEMSET(3)
Das genügt. Der Fall, dass ein Array 0 Elemente hat, ist ohnehin
syntaktisch nicht OK. Alle anderen Fälle werden davon abgedeckt.
Das ganze braucht man natürlich nur für eine automatische Variable.
Hat die Variable `static storage' (also explizit 'static' deklariert
oder global), dann wird sie ohnehin by default mit 0 initialisiert.
Die hässliche Schreibweise mit dem Komma vorn muss man übrigens
nicht benutzen. Die fällt ja sowieso auf die Nase, wenn alle
möglichen Initialisierungselemente innerhalb von #if/#ifdef
stehen. Der C-Standard gestattet prinzipiell ein Komma am Ende
einer Liste von Initialisierern, auch wenn danach kein weiteres
Element mehr folgt. Damit geht sowas:
> Der C-Standard gestattet prinzipiell ein Komma am Ende> einer Liste von Initialisierern, auch wenn danach kein> weiteres Element mehr folgt.
Unterscheidet sich das bei Enums? Da sind mir Compiler aufgefallen, die
das nicht mögen. Alter Standard?
Rufus t. Firefly schrieb:
>> Der C-Standard gestattet prinzipiell ein Komma am Ende>> einer Liste von Initialisierern, auch wenn danach kein>> weiteres Element mehr folgt.> Unterscheidet sich das bei Enums?
Nein, ist dort genauso gestattet.
> Da sind mir Compiler aufgefallen, die> das nicht mögen. Alter Standard?
Ja, vermutlich. Mir ist so, als wäre das erst durch C99
abgesegnet. Ich müsste mir allerdings extra einen ANSI-89/ISO-90-
Standard ansehen, um das mal zu vergleichen.