如何将unsigned转换为uint64_t?

use*_*657 1 c unsigned c99

我有一个unsigned并希望将其转换为uint64_t(如果可能的话).

我怎么做?如果可能的话,我想避免依赖于未定义的行为.

谢谢!

Dan*_*her 6

从任何整数类型转换为无符号整数类型完全由标准定义(第6.3.1.3节,第2段).如果值可以在目标类型中表示,则保留该值,否则以模数减少该值2^WIDTH,其中WIDTH是目标类型的宽度(值位数).