問題タブ [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 投票する
5 に答える
2213 参照

c - 定数ではない offsetof 式が機能するのはなぜですか?

なぜこれが機能するのですか:

offsetof の定義を正しく覚えていれば、それはコンパイル時の構造です。'i' を配列インデックスとして使用すると、非定数式になります。コンパイラがコンパイル時に式を評価する方法がわかりません。これがエラーとしてフラグ付けされないのはなぜですか?

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

c++ - コンパイル時に構造体メンバーのバイトオフセットを決定していますか?

コンパイル時に構造体メンバーのバイトオフセットを見つけたいです。例えば:

へのバイトオフセットがであることを知りたいと思いますnormal(この場合は12.)

を使用できることはわかっていますoffsetofが、これはランタイム関数であり、使用したくありません。

私が達成しようとしていることは可能ですか?

編集offsetofコンパイル時です、私の悪いです!

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

templates - gcc、メンバーへのテンプレート化されたポインターでoffsetof()を使用できますか?

以下のコードはこちら: https://ideone.com/XnxAyw

私が得るコンパイルエラーは次のとおりです。

Visual Studio はoffsetof(type, 'pointer to member')を使用しても問題ありませんが、それは緩いからですか? もしそうなら、メンバテンプレート引数へのポインタで offsetof() を使用する標準に準拠した方法を知っている人はいますか?

ここでの別の試み: https://ideone.com/HD8PI0

この時点で完全に困惑しました。2 回目の試みは次のとおりです。

0 投票する
5 に答える
474 参照

c++ - CおよびC++でのoffsetofの使用について?

C では、offsetof を使用して、構造内のメンバーの先頭へのオフセットを計算するのを見ましたか?

C++ での使用は引き続き推奨されますか? このマクロなしでこれを行う他の方法はありますか?

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

c++ - 構造体メンバーのクラッシュのオフセットを取得しています

私の知る限り、「offsetof」マクロは次のように定義されています。

このリンクに基づいて: http://en.wikipedia.org/wiki/Offsetof

そこで、構造体メンバーのオフセットを計算する独自のコード スニペットを作成します。

私の質問は次のとおりです。

  • 型キャストはクラッシュを引き起こしますか。最初のメンバーのオフセットをカウントできないのに、printf はできるのはなぜですか?
  • なぜ型キャストする必要があるのでしょうか。それはしなければなりませんか?

どんな意見でも大歓迎です:)