小编cor*_*ius的帖子

是否在C标准中定义了对unsigned int的负二次转换行为?

我有在不同平台上运行的代码,似乎得到不同的结果.我正在寻找一个正确的解释.

Windows:

double dbl = -123.45; 
int d_cast = (unsigned int)dbl; 
// d_cast == -123
Run Code Online (Sandbox Code Playgroud)

WinCE(ARM):

double dbl = -123.45; 
int d_cast = (unsigned int)dbl; 
// d_cast == 0
Run Code Online (Sandbox Code Playgroud)

编辑:

谢谢你指出了正确的方向.

修复变通方法

double dbl = -123.45; 
int d_cast = (unsigned)(int)dbl; 
// d_cast == -123
// works on both. 
Run Code Online (Sandbox Code Playgroud)

c casting

21
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

casting ×1