调试中发现,浮点数直接赋值给无符号定点数的行为,从结果上看,有自相矛盾的行为:
测试代码如下:

执行结果如下:

Test3没有初始化到任何数据,但是运行同样的语句,Test1却获得了数据(-30的16进制形式,符合预期);
同样地,Test2理论上其执行结果应该等同于Test1,然而很遗憾,它最终也没有获得数据。
以上代码我在VS平台上测试,结果是一致的,所测试变量都可以赋值成功。
这个问题是否反映出,目前这个版本的编译器,在数值隐形转换思路方面的混乱和无理?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
调试中发现,浮点数直接赋值给无符号定点数的行为,从结果上看,有自相矛盾的行为:
测试代码如下:

执行结果如下:

Test3没有初始化到任何数据,但是运行同样的语句,Test1却获得了数据(-30的16进制形式,符合预期);
同样地,Test2理论上其执行结果应该等同于Test1,然而很遗憾,它最终也没有获得数据。
以上代码我在VS平台上测试,结果是一致的,所测试变量都可以赋值成功。
这个问题是否反映出,目前这个版本的编译器,在数值隐形转换思路方面的混乱和无理?
未定义将负浮点数转换为无符号整数。 为了说明这一点,我把这个例子放在godbolt上。 您可以使用许多不同的编译器试用它。 我尝试的每个编译器都将0分配给Test3。