K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>C 規格書はウチに帰らないと無いのでアレげですが >C++ 規格書であれば 「JIS X3014:1998-3.3.2 局所的な有効範囲」で、 >ブロック内に宣言された名前はそのブロックに局所的である。 >と書かれています。実際以下のコードはコンパイルエラーです。 >---hoge.cpp--- >int func1(void) { > extern int piyo(void); > return piyo(); >} >int func2(void) { > return piyo(); >} >---EOF of hoge.cpp--- >んで、上記を hoge.c とした場合の挙動ですが >bash-3.0$ hppa2.0w-hp-hpux11.00-gcc-3.3.4 -Wall -c hoge.c >hoge.c: In function `func2': >hoge.c:7: warning: implicit declaration of function `piyo' > >Microsoft Visual C++ 6.0SP6 だと >cl -W4 -c hoge.c >hoge.c(2) : warning C4210: 非標準の拡張機能が使用されています : 関数にはファイル スコープが与えられています。 >hoge.c(7) : warning C4217: 非標準の拡張機能が使用されています : 以前のブロックでの関数宣言です。 > >となりました。 >やはり言語規格がスコープ詳細等を定めていないようです。 > ># IE6 でも Acrobat Reader を uninstall してから JIS 閲覧するとゲフガフ ># って検索が効かない文書なので、むりくり保存してもあまり役に立たない鴨。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!