Non mi è piaciuta nessuna di queste risposte, quindi ho creato la mia. Non so se questo è ANSI C o meno, è solo GCC 4.2.1 nella sua modalità predefinita. Non ricordo mai il bracketing, quindi inizio con un sottoinsieme dei miei dati e combatto con i messaggi di errore del compilatore fino a quando non si chiude. La leggibilità è la mia prima priorità.
// in a header:
typedef unsigned char uchar;
struct fields {
uchar num;
uchar lbl[35];
};
// in an actual c file (I have 2 in this case)
struct fields labels[] = {
{0,"Package"},
{1,"Version"},
{2,"Apport"},
{3,"Architecture"},
{4,"Bugs"},
{5,"Description-md5"},
{6,"Essential"},
{7,"Filename"},
{8,"Ghc-Package"},
{9,"Gstreamer-Version"},
{10,"Homepage"},
{11,"Installed-Size"},
{12,"MD5sum"},
{13,"Maintainer"},
{14,"Modaliases"},
{15,"Multi-Arch"},
{16,"Npp-Description"},
{17,"Npp-File"},
{18,"Npp-Name"},
{19,"Origin"}
};
I dati possono iniziare la vita come file delimitati da tabulazioni che cerchi di sostituire per massaggiare qualcos'altro. Sì, questa è roba Debian. Quindi una coppia esterna di {} (che indica l'array), quindi un'altra coppia per ogni struttura interna. Tra virgole tra. Mettere le cose in un'intestazione non è strettamente necessario, ma ho circa 50 elementi nella mia struttura, quindi li voglio in un file separato, entrambi per mantenere il disordine dal mio codice ed è quindi più facile da sostituire.