offsetof(mystruct, myfield)
データ メンバー ( ) のオフセットが、 で取得されたメンバー ポインターの生の値と数値的に等しいと仮定しても安全&mystruct::myfield
ですか?それとも実装に依存しますか?
質問する
894 次
2 に答える
3
いいえ; メンバーへのポインターの実装が指定されておらず、「生の」値を取得するための変換が定義されていません。
于 2012-01-30T16:47:14.817 に答える
1
もちろん、形式的には実装依存です。実生活では、はい、データ メンバーへのポインターのポインターの最も一般的な実装は、計画と単純なオフセット、つまりoffsetof
評価対象と同じものです (またはそれに基づいています)。
一部の実装では、正確なオフセットを使用し、パターンに頼って0xFFF...
null ポインター値を表します。一部の実装0x000...
では、null ポインター値のパターンを予約し、すべての「非 null」オフセットを だけインクリメントします1
。
于 2015-07-10T17:18:25.020 に答える