09/03/26 12:45:35
>>581
そうか、まあまずリンケージから理解するかと思って調べたらこんなの出てきたんだけど、
ほんとかどうかついでに教えてよ。
C 言語と C++ 言語では const キーワードを使うことで定数を宣言することができます。
例えば const int cardmax=13; のように使用できます。これが単一のモジュールだけで
使われるのならば問題がないのですが、複数のモジュールにわたって使われる場合、
C言語と C++ 言語では constのリンケージが違うので、注意が必要です。具体的には
C言語では外部リンケージをもち、C++ 言語では内部リンケージを持ちます。つまり
C 言語では他のモジュールから使用する場合、そのモジュール内で
extern const int cardmax;
と宣言すればこの定数は使用可能ですが、C++ 言語では同じようにしても参照する
ことはできません。C++ 言語で外部から const オブジェクトを参照したい場合には、
定数を定義するときに、
extern const int cardmax=13;
のように定義する必要があります。