問題タブ [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.
c - 定数ではない offsetof 式が機能するのはなぜですか?
なぜこれが機能するのですか:
offsetof の定義を正しく覚えていれば、それはコンパイル時の構造です。'i' を配列インデックスとして使用すると、非定数式になります。コンパイラがコンパイル時に式を評価する方法がわかりません。これがエラーとしてフラグ付けされないのはなぜですか?
c++ - コンパイル時に構造体メンバーのバイトオフセットを決定していますか?
コンパイル時に構造体メンバーのバイトオフセットを見つけたいです。例えば:
へのバイトオフセットがであることを知りたいと思いますnormal
(この場合は12
.)
を使用できることはわかっていますoffsetof
が、これはランタイム関数であり、使用したくありません。
私が達成しようとしていることは可能ですか?
編集:offsetof
コンパイル時です、私の悪いです!
templates - gcc、メンバーへのテンプレート化されたポインターでoffsetof()を使用できますか?
以下のコードはこちら: https://ideone.com/XnxAyw
私が得るコンパイルエラーは次のとおりです。
Visual Studio はoffsetof(type, 'pointer to member')を使用しても問題ありませんが、それは緩いからですか? もしそうなら、メンバテンプレート引数へのポインタで offsetof() を使用する標準に準拠した方法を知っている人はいますか?
ここでの別の試み: https://ideone.com/HD8PI0
この時点で完全に困惑しました。2 回目の試みは次のとおりです。
c++ - CおよびC++でのoffsetofの使用について?
C では、offsetof を使用して、構造内のメンバーの先頭へのオフセットを計算するのを見ましたか?
C++ での使用は引き続き推奨されますか? このマクロなしでこれを行う他の方法はありますか?
c++ - 構造体メンバーのクラッシュのオフセットを取得しています
私の知る限り、「offsetof」マクロは次のように定義されています。
このリンクに基づいて: http://en.wikipedia.org/wiki/Offsetof
そこで、構造体メンバーのオフセットを計算する独自のコード スニペットを作成します。
私の質問は次のとおりです。
- 型キャストはクラッシュを引き起こしますか。最初のメンバーのオフセットをカウントできないのに、printf はできるのはなぜですか?
- なぜ型キャストする必要があるのでしょうか。それはしなければなりませんか?
どんな意見でも大歓迎です:)