Мне не понравился ни один из этих ответов, поэтому я сделал свой собственный. Я не знаю, является ли это ANSI C или нет, это просто GCC 4.2.1 в режиме по умолчанию. Я никогда не могу вспомнить скобки, поэтому я начинаю с подмножества моих данных и сражаюсь с сообщениями об ошибках компилятора, пока они не закроются. Читаемость является моим первым приоритетом.
// 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"}
};
Данные могут начинать жизнь как файл с разделителями табуляцией, который вы ищете и заменяете, чтобы преобразовать его во что-то другое. Да, это вещи Debian. Итак, одна внешняя пара {} (с указанием массива), затем другая пара для каждой структуры внутри. С запятыми между. Помещать вещи в заголовок не обязательно, но в моей структуре около 50 элементов, поэтому я хочу, чтобы они были в отдельном файле, чтобы не допустить путаницы в моем коде, и поэтому их легче заменить.