[203] Re:C言語ポインタ完全制覇についての質問
投稿者:九龍
2007/02/20 02:13:25
774RRさん、度々申し訳ありません。
すばやいレスありがとうございます。
つまり、
--a.c--
int a = 1; // 定義
--b.c--
int a; // 仮定義
上記の場合だと、b.cのint a;が仮定義なので、a.cで定義されているint a = 1;のオブジェクトとまとめられたと言うことで、b.cのint a;がextern int a;と解釈されている訳ではないという解釈で宜しいでしょうか?
(774RRさんがお書きになったリンク先の13番目の項目に該当するので、結局それは処理系依存になる為、VC++ 6.0ではまとめられて解釈されたというような解釈で宜しいでしょうか?)
後、くだらない事をお聞きしますが、
-- a.c --
#include <stdio.h>
extern void f (void); // a.c の関数 f と結び付く(通常externは付けないけど)
int main (void)
{
f ();
return 0;
}
static void f (void)
{
printf ("a.c の関数 f\n");
}
-- b.c --
#include <stdio.h>
extern void f (void)
{
printf ("b.c の関数 f\n");
}
の場合、main関数のf関数の呼び出しは、a.cにある関数fとなりますが、この場合のextern void f (void)の関数プロトタイプ宣言のリンケージ属性はどうなるのでしょうか?
くだらない質問ですが、宜しくお願い致します。