> Rationaleを見ても、このへんに関する記述は以下の箇所くらいのようです。
>
http://www.lysator.liu.se/c/rat/c1.html#3-1-2-2
rationaleにこんな記述があったのですね。ありがとうございます。
> extern int i3 = 3;
> これも不可解ですが、これはcommonモデルの方を引き継いだのでしょうかね。
該当箇所をよく読んでみると、列挙されたモデルの4つ目にinitializionモデルというのがあり、
「定義になるかどうか」を初期化子の有無だけで判断するものがあったようですね。
さらにその後には、
(訳)
>規格で採用されたモデルは、strict ref/defモデルとinitializationモデルの特徴を組み合わせたものとなっている。
>(略)
>しかし、外部定義として働くのは、「初期化」あるいは「記憶域クラス指定子のない特定の宣言」のいずれでもよい。
>このような混合アプローチが選択されたのは、さまざまな環境と既存の実装に可能な限り広範囲に適応するためである。
とあります。これを読む限り、
extern int i3 = 3;
の挙動はinitializationモデルを引き継いだ可能性もありそうです。
同モデルの説明のところにはexternの扱いは明記されていないので、少し話がずれているかもしれませんが。
有用な資料の箇所を指し示してくださってありがとうございました。