私はこれらの答えのどれも気に入らなかったので、自分で作りました。これが 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 個の項目があるので、それらを別のファイルに入れたいと思います。両方とも、コードが混乱しないようにするためであり、交換が簡単です。