seclan のほえほえルーム

| |

C 言語と C++ 言語での const キーワードによるリンケージの違い

・
2000/04/13 []

 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; のように定義する必要があります。


by seclan

関連


| |

 

配信

7.33 msec