No me gustó ninguna de estas respuestas, así que hice la mía. No sé si esto es ANSI C o no, es solo GCC 4.2.1 en su modo predeterminado. Nunca recuerdo el paréntesis, así que comienzo con un subconjunto de mis datos y lucho con los mensajes de error del compilador hasta que se cierra. La legibilidad es mi primera prioridad.
// 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"}
};
Los datos pueden comenzar como un archivo delimitado por tabulaciones que usted busca, reemplaza para dar masajes a otra cosa. Sí, esto es cosa de Debian. Entonces, un par externo de {} (que indica la matriz), luego otro par para cada estructura interna. Con comas entre. Poner cosas en un encabezado no es estrictamente necesario, pero tengo alrededor de 50 elementos en mi estructura, así que los quiero en un archivo separado, tanto para mantener el desorden de mi código como para que sea más fácil de reemplazar.