問題タブ [offsetof]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - offsetof を実装する gcc プラグイン
構造フィールドを解析するための gcc プラグインを作成しています。しかし、構造体の各フィールドのオフセットを取得する方法に問題がありますか? gcc の offsetof マクロと同じです。
DECL_FIELD_OFFSETtree.hに表示されますが、結果が正しくないようです。
私のコードは、Richard WM Jones、https: //rwmj.wordpress.com/2016/02/24/playing-with-gcc-plugins/ からのものです。
テストソースファイルは次のとおりです。
しかし、オフセット
正しい結果ではありません:
c++ - c++ reinterpret_cast 整数
次のC++コードに出くわしました:
ここで、t は型、f はフィールド名です。なぜ reinterpret_cast のパラメータとして整数 16 を指定できるのだろうか。
c++ - offsetof にはポインターの逆参照が必要ですか?
offset_of_単純なマクロに not のポインター逆参照が必要かどうか疑問に思っています。たとえば、C++packed 属性で宣言された構造体 (このコードは C++ コンパイラを使用してコンパイルされることを意味します)
この場合、 insidesizeof(int) == 4のオフセットを計算するためにy、A単純なマクロを作成したとします。
このマクロの値が常に であると確信できます4か? 0マクロが呼び出されたときに (UB である可能性がある)からのポインター逆参照はありますか?
返信ありがとうございます。
c++ - 関連付けられていない別のサブオブジェクトへのポインターを介して、あるサブオブジェクトへのポインターを取得することは可能ですか?
次の簡単なコードを見てください。
へのアクセス権がないため、 へのポインタのみを取得するため、mainの戻り値は に最適化できると思います。return 2;somethingp.yp.x
しかし、主要なコンパイラはいずれも to の戻り値を最適化しませmainん2。ゴッドボルト。
へのアクセスのみを許可する場合、標準somethingに変更を許可するものはありますか? はいの場合、これは標準レイアウトがあるかどうかに依存しますか?p.yp.xPoint
代わりにsomething(&p.y);, andを使用するとどうなりますか?return p.x;