問題タブ [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.

0 投票する
1 に答える
121 参照

gcc - offsetof を実装する gcc プラグイン

構造フィールドを解析するための gcc プラグインを作成しています。しかし、構造体の各フィールドのオフセットを取得する方法に問題がありますか? gcc の offsetof マクロと同じです。

DECL_FIELD_OFFSETtree.hに表示されますが、結果が正しくないようです。

私のコードは、Richard WM Jones、https: //rwmj.wordpress.com/2016/02/24/playing-with-gcc-plugins/ からのものです。

テストソースファイルは次のとおりです。

しかし、オフセット

正しい結果ではありません:

0 投票する
3 に答える
1044 参照

c++ - c++ reinterpret_cast 整数

次のC++コードに出くわしました:

ここで、t は型、f はフィールド名です。なぜ reinterpret_cast のパラメータとして整数 16 を指定できるのだろうか。

0 投票する
1 に答える
137 参照

c++ - offsetof にはポインターの逆参照が必要ですか?

offset_of_単純なマクロに not のポインター逆参照が必要かどうか疑問に思っています。たとえば、C++packed 属性で宣言された構造体 (このコードは C++ コンパイラを使用してコンパイルされることを意味します)

この場合、 insidesizeof(int) == 4のオフセットを計算するためにyA単純なマクロを作成したとします。

このマクロの値が常に であると確信できます4か? 0マクロが呼び出されたときに (UB である可能性がある)からのポインター逆参照はありますか?

返信ありがとうございます。

0 投票する
1 に答える
1468 参照

c++ - 関連付けられていない別のサブオブジェクトへのポインターを介して、あるサブオブジェクトへのポインターを取得することは可能ですか?

次の簡単なコードを見てください。

へのアクセス権がないため、 へのポインタのみを取得するため、mainの戻り値は に最適化できると思います。return 2;somethingp.yp.x

しかし、主要なコンパイラはいずれも to の戻り値を最適化しませmain2ゴッドボルト

へのアクセスのみを許可する場合、標準somethingに変更を許可するものはありますか? はいの場合、これは標準レイアウトがあるかどうかに依存しますか?p.yp.xPoint

代わりにsomething(&p.y);, andを使用するとどうなりますか?return p.x;