次の識別子にはリンクがありません。オブジェクトまたは関数以外のものであると宣言された識別子。関数パラメーターとして宣言された識別子。ストレージクラス指定子externなしで宣言されたオブジェクトのブロックスコープ識別子。
{
static int a; //no linkage
}
ストレージクラス指定子externで宣言された識別子の場合、その識別子の前の宣言が表示されるスコープで、前の宣言が内部または外部のリンケージを指定している場合、後の宣言での識別子のリンケージはリンケージと同じです。事前の宣言で指定されています。以前の宣言が表示されていない場合、または以前の宣言でリンケージが指定されていない場合、識別子には外部リンケージがあります。
{
static int a; //no linkage
extern int a; //a should get external linkage, no?
}
GCCエラー:リンケージのないfollows宣言のextern宣言
誰かが私にこのエラーが発生する理由を説明できますか?
ありがとうございました