私はこれらの答えのどれも好きではなかったので自分で作りました。これが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のものです。したがって、{}(配列を示す)の外側のペアの1つと、内部の各構造体の別のペアです。間にコンマを入れます。ヘッダーに物を置くことは必ずしも必要ではありませんが、構造体には約50の項目があるので、コードを混乱させないようにするためと、簡単に置き換えることができるように、それらを別のファイルに入れます。