나는이 답변들 중 어느 것도 마음에 들지 않아서 나 자신을 만들었다. 이것이 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"}
};
데이터가 탭으로 구분 된 파일로 시작되어 다른 것으로 마사지하기 위해 검색을 대체 할 수 있습니다. 네, 데비안입니다. 따라서 {}의 외부 쌍 (배열을 나타냄)과 내부의 각 구조체에 대한 다른 쌍입니다. 사이에 쉼표가 있습니다. 헤더에 물건을 넣는 것이 꼭 필요한 것은 아니지만 내 구조체에 약 50 개의 항목이 있으므로 별도의 파일에 저장하여 코드에서 혼란을 피하고 교체하기가 더 쉽습니다.