[解決済み] C++ではconstは内部リンクを意味するのに、なぜCではそうしないのですか?
2023-06-15 21:04:03
質問
主題を参照。彼らは何を考えていたのでしょうか?
UPDATE: 混乱を避けるため、"static" から "internal linkage" に変更しました。
例を挙げると... あるファイルに以下のようなものを入れる。
const int var_a = 1;
int var_b = 1;
...そして、コンパイルは
g++ -c test.cpp
のみをエクスポートします。
var_b
.
どのように解決するのですか?
私はあなたが意味すると信じています
<ブロッククオートなぜC++でconstが内部リンクを意味するのか
確かに、名前空間スコープでconstオブジェクトを宣言すると、内部リンクがあることになりますね。
付録C ( C++11、C.1.2 ) にその根拠が示されています。
変更します。 ファイルスコープの名前が明示的に const と宣言され、明示的に extern と宣言されていない場合、内部リンクを持ちますが、C では外部リンクを持つことになります。
根拠は? C++ではconstオブジェクトはコンパイル時の値として使用できるため、この機能はプログラマに各constに明示的な初期化子を提供するよう促している。この機能により、多くのコンパイル単位に含まれるヘッダーファイルに const オブジェクトを置くことができるようになります。
関連
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] Collatz予想の検証を行うC++のコードは、なぜ手書きのアセンブリよりも高速に動作するのでしょうか?
-
[解決済み] なぜGCCは、速度の代わりにサイズに最適化すると、15-20%速いコードを生成するのですか?
-
[解決済み] 外部連携、内部連携とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
-
[解決済み] C++のセマンティクス、`static const` と `const` の比較
-
[解決済み] C++のヘッダーで定数変数を定義する