これは32ビットアプリケーション用であると仮定します。私は一緒に一意に特定のオブジェクトを識別する2つのID値を持っています。各IDはプレーンな32ビットintですので、特定のオブジェクトを識別するためには、両方のID値をまとめておく必要があります。構造体とint64の値
心に来る最初のソリューションは、それらを格納するために2つの別々の値としてあり、かつ構造体の周りにそれらを渡す:
struct {
int id1;
int id2;
};
私は、それらを周りに渡すことができればしかし、それはいいだろう1つの32ビットID値があるときに戻ったので、構造体のペアではなく、単一の値を返します。
もう一つの考え方は、uint64_tの上半分と下半分として格納することです。
私の質問は、2つの方法の間に実際の違いはありますか?どちらの場合でも、同じバイト数が渡されていますが、CPUが64ビット値をネイティブに処理していないため、int64に特別なオーバーヘッドがあるかどうかはわかりません。
"*最初の解決策は何を考えていますか?*"問題の解決方法は? – ildjarn
構造体*は単一の値です。あなたが言うように、いずれかの方法で8バイトを渡す必要があります。 –
@ildjarnおそらく2つのIDを周りに渡すために、それは残りの質問から暗示されていると思います。 –