Kernigan & Ritchie 著「C プログラミング言語」第 2 版の 6.3 段落を読みました。
いくつかの構造:
struct key {
char *word;
int count;
} keytab[NKEYS] {
{ "auto", 0 },
{ "break", 0 },
{ "case", 0 },
{ "char", 0 },
{ "const", 0 },
{ "continue", 0 }
};
著者はそれについて次のように書いています。
数量 NKEYS は、keytab 内のキーワードの数です。これは手で数えることもできますが、リストが変更される可能性がある場合は特に、機械で数えた方がはるかに簡単で安全です。可能性の 1 つは、イニシャライザのリストを null ポインタで終了し、最後が見つかるまで keytab に沿ってループすることです。
enum にポインターのみが含まれている場合、すべてが明確になります。
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},
{?,?,?}
};
ありがとうございました。