这些答案我都不喜欢,所以我自己编了一个。我不知道这是否是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项,所以我想把它们放在一个单独的文件中,既保持混乱的代码,所以更容易替换。