extern "C" 以下が、宣言になるなのか、定義になるのかについて、以下のページには、
extern "C" { int i; } と書くと、i は、「定義」される。
宣言で済ましたい場合には、
extern "C" { extern int i; }としなくてはならない。しかし、中括弧で囲まずに、
extern "C" int i;
と書いた場合には、i は「宣言」だけされる、とあります。
さらに、これは変数の場合で、関数の場合には、戻り値 関数名(仮引数列) の後に関数定義部の{・・・}
があるかどうかで宣言か定義かが変わるだけのようです。といいますか、関数の場合は、関数定義部
がなければ、「定義」しようがないのでそれは当然かもしれませんが(結構複雑です。)。
これらの動作について、cppreference などで述べられているページがあれば、
教えていただければ幸いです。
https://stackoverflow.com/questions/1041866/what-is-the-effect-of-extern-c-in-c
Note that extern "C" { int i; } is a definition.
This may not be what you intended, next to the non-definition of void g(char);.
To make it a non-definition, you would need extern "C" { extern int i; }.
On the other hand, the one-declaration syntax without braces does make the declaration a non-definition: extern "C" int i; is the same as extern "C" { extern int i; }
探検
C++相談室 part151
■ このスレッドは過去ログ倉庫に格納されています
2020/05/14(木) 16:44:48.92ID:7nN34odP
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- 俺のおちんちん舐めたい女の子いる?
- くそしてかがやけ
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
