Je n'ai aimé aucune de ces réponses, alors j'ai fait la mienne. Je ne sais pas si c'est ANSI C ou pas, c'est juste GCC 4.2.1 dans son mode par défaut. Je ne me souviens jamais du bracketing, donc je commence avec un sous-ensemble de mes données et je me bats avec les messages d'erreur du compilateur jusqu'à ce qu'il se ferme. La lisibilité est ma première 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"}
};
Les données peuvent commencer la vie comme un fichier délimité par des tabulations que vous recherchez-remplacez pour masser dans autre chose. Oui, c'est des trucs Debian. Donc une paire extérieure de {} (indiquant le tableau), puis une autre paire pour chaque structure à l'intérieur. Avec des virgules entre. Mettre des choses dans un en-tête n'est pas strictement nécessaire, mais j'ai environ 50 éléments dans ma structure, donc je les veux dans un fichier séparé, à la fois pour garder le désordre de mon code et donc c'est plus facile à remplacer.