C++におけるconst修飾子の三層構造: コンパイラから物理メモリまで

C++のconst修飾子は変数の不変性を保証するが、その実装は3つの抽象化レイヤーで構成される。これらのレイヤーは相互に作用しつつ、データの不変性を段階的に強化する仕組みとなっている。 コンパイラレベルの制約 コンパイラはconst修飾された変数への直接的な代入を構文チェックで検出する。次の例ではコンパイルエラーが発生する: constexpr int initialValue = 100; ...

7月30日 22:57 投稿

memcpy と memmove の違い:メモリ重複コピーの落とし穴

背景 アプリケーションを別のプラットフォームに移植した際、受信バッファから処理済みデータを memcpy で移動させたところ、メモリ上のデータが破壊される問題が発生した。 環境情報: $ gcc -v Using built-in specs. ... gcc version 4.9.2 (Linx 4.9.2-10-linx1) $ uname -a Linux localhost 4.9.0-0.bpo.1-linx-security-amd64 #1 SMP ... 原則 memcpy と memmove ...

6月14日 16:15 投稿