K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>そういう約束だから >関数(原型)宣言に extern も static もない場合は extern が補われると考えよう > >void myfunc(int); // これには extern も static も明示されてないので >extern void myfunc(int); // と解釈される規則 > >この規則は関数の場合にのみ適用されるので、変数宣言には適用されない > >以下は、言語規格書の厳密解釈なので、一読してわからなかったらスキップしてね >・関数宣言で指定できる linkage は static か extern かどちらかだけ (無指定も OK) >・ static が明示されている関数宣言は internal linkage >・ internal linkage でない関数宣言は external linkage > >ヘッダ中で宣言+ソースファイル中で定義することは完璧に正しい >----hoge.h---- >void hogefunc(double); // This declaration has external linkage >----hoge.c---- >#include "hoge.h" >void hogefunc(double d) { ... } // This definition also has external linkage > >以下のような小細工コードをいまだに見るけど、現代 C/C++ であれば不要 >#ifdef HOGE_DEFINITION >#define EXTERN >#else >#define EXTERN extern >#endif >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!