我读过由Kernigan & Ritchie编写的“C编程语言”第二版的第6.3段。NULL指针作为数组末尾的标记
一些结构:
struct key {
char *word;
int count;
} keytab[NKEYS] {
{ "auto", 0 },
{ "break", 0 },
{ "case", 0 },
{ "char", 0 },
{ "const", 0 },
{ "continue", 0 }
};
作者写道一下:
数量NKEYS是密钥表关键字的数量。虽然我们 可以手动计算,但通过 机器可以更容易和更安全,特别是如果列表可能会更改。 一种可能性 将是用空指针终止初始值设定项列表, 然后沿keytab循环,直到找到结尾为止。如果枚举只包含指针
一切都将是明确的:
struct key {
char *word;
char *description;
} keytab[NKEYS] {
{ "auto", "" },
{ "break", "" },
{ "case", "" },
{ "char", "" },
{ "const", "" },
{ "continue", "" }
{ NULL, NULL}
};
但每个记录不仅指针,但和int
了。如果我对作者理解正确,那么最后一条记录必须如下:
{ NULL, ? }
那么无指针呢?
我怎样才能解决它的枚举,其中不包含指针?例如:
enum myEnum {
int index;
inr count;
double value;
} myVariable[] {
{0,0,0},
{0,0,0},
{0,0,0},
{0,0,0},
{?,?,?}
};
谢谢。
是的,我明白了。 – 2013-02-09 10:16:19