2

次の変数があります。

UWORD64 length;     
UWORD32 thumbnail_offset;
UWORD32 thumbnail_length;
UWORD64 sum;

そして、これが私がやりたいことです:

sum = (UWORD64)(thumbnail_offset + thumbnail_length);
main_image_length = (UWORD32)(length - sum);

しかし、最初の行でエラーが発生します:非スカラー型への変換が要求されました

そして、2行目にエラーが表示されます:無効なオペランドからバイナリへ - (have 'UWORD64' and 'UWORD64')

何が問題なのかわかりません。下位のタイプを昇進させるべきではありませんか?これが問題を引き起こしているのはなぜですか?

4

1 に答える 1

2

def型または未定義の値である可能性があります。私はMSVC2012を使用しており、Microsoftの組み込み型を使用しています。コンパイルに問題はありません。

unsigned __int64 length = 100;     
unsigned __int32 thumbnail_offset = 32;
unsigned __int32 thumbnail_length = 25000000;
unsigned __int64 sum = 0;
unsigned __int32 main_image_length = 0;

//And this is what I want to do:

sum = (unsigned __int64 )(thumbnail_offset + thumbnail_length);
main_image_length = (unsigned __int32)(length - sum);
于 2012-11-14T04:35:03.523 に答える