K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>>・どこかで定義されている関数を使う場合、プロトタイプ宣言を行うが、 >>> これにはexternをつけても付けなくても良い(で、たぶん普通はつけない) >つけてもつけなくても良い、というか単純に省略時解釈なだけですね。 >int hoge(void); という関数宣言は extern int hoge(void); と解釈されます。 >void piyo(void) {} という関数定義は extern void piyo(void) {} と解釈されます。 >extern がついているので外部結合となるわけです。 > >あと C と C++ では規則が少し変更されていて >--a.cpp-- >int g; >--b.cpp-- >int g; >とするとエラーになります (One Definition Rule : ISO/IEC 14882:1998 3.2) > >C の場合 ODR の規定がありません。 >そのため、過去のコンパイラ用に書かれたコードとの互換性のために、 >「複数個の翻訳単位で同一名称の変数が定義されたら、それを同一の実体とみなす」 >処理系がほとんどです。 ># そーいうコードが多く残っているので。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!