gcc 4.7.2
c89
APR 1.4
こんにちは、
プログラムを 32 ビット モードでコンパイルしています。つまり-m32
、リンクしているライブラリの一部が 32 ビット ライブラリを使用しているためです。
私は次の構造を持っています:
struct tag_channel {
apr_int32_t id;
char *name;
};
IDには乱数が必要なので、APRを使用しています:
apr_time_t time_secs = apr_time_sec(apr_time_now());
apr_time_sec は次の apr_time_t タイプを返すため、キャストについて疑問に思っています。
typedef apr_int64_t
次のようにキャストできます。
channel->id = (apr_int32_t)time_secs;
ただ、キャストダウンによる価値の低下が気になります。
以下は64ビットなので、これが機能するかどうかはわかりません。
#define APR_TIME_T_FMT APR_INT64_T_FMT
apr_time_t
ID値の時間値を持つことは本当に意味がないので、IDのチャネル構造を変更したくありません。
これをキャストする最良の方法はどれですか?
ご提案いただきありがとうございます。