質問です。

プログラムの本やウェブページを読んでると「宣言」「定義」という言葉がよく出てきます。
例えば、 "構造体定義" でぐぐっても "構造体宣言" でぐぐっても
同じような解説ページが出てくるので、あまり拘って区別するものではないかもしれないとも思うのですが
あえて区別するなら
宣言 → 「そういう物が有る」と言っているだけで実体はない(extern とか関数宣言とか)
定義 → 「そういう物である」と決定する(構造体とか定数とか関数とか)
という解釈で合っているのでしょうか