文法宣言

新人研修用にC言語の資料を作成中。K&R2ndを元に、文法要約を作ったのだが、つながりがわからない所がある。やっぱり宣言のところ。

init-declarator
初期宣言子かな?初期化付と無しのの宣言子をまとめたものかな?

declaration:
    declaration-specifiers init-declarator-listopt ;

だから以下の宣言があった場合、それぞれの要素は以下のようになるはず。

static const char *hoge = {"hoge", "fuga"};

static const int  → 宣言指定子
static → 記憶クラス指定子
const → 型修飾子
char → 型指定子
 *hoge = {"hoge", "fuga"} → 初期宣言子
{"hoge", "fuga"} → 初期値式
 *hoge → 宣言子
hoge → 直接宣言子
hoge → 直接宣言子(入れ子になっている。)