私は2つのコアを持っています。1つは32ビットで、もう1つは64ビットです。
64ビットマシンでは、unsigned long longをサポートしています。この値を、次のような32ビットマシンでアクセスできる変数に割り当てる必要があります。-
typedef struct {
unsigned int low;
unsigned int high;
} myint64_t;
myint64_t app_sc;
以下は、64ビットマシンのコードスニペットです。
unsigned long long sc;
/* Calculate sc */
...
64ビットマシンでは、app_scに「sc」を割り当て、64ビットマシンでのコンピューティングに使用する必要があります。
私はこのようなことをしようとしていました:-
app_sc = sc;
しかし、コンパイラはコンパイル時のエラーを出します。私も同様に、次のようなことができます:-
app_sc.low = sc & 0xFFFFFFFF;
app_sc.high = (sc>>32) & (0xFFFFFFFF);
しかし、それは保証されますか、それはすべての場合に機能しますか?
それを行うためのより良い方法はありますか?