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 投稿