当询问C中常见的未定义行为时,灵魂比我提到的严格别名规则更加开明.
他们在说什么?
我有以下功能。它适用于short:
void foo (short n, short * res)
{
*res = n*2;
}
Run Code Online (Sandbox Code Playgroud)
我想将结果存储在double变量中。例如:
short in = 5;
double out = 0;
foo(in,&out);
Run Code Online (Sandbox Code Playgroud)
但这样的结果是一些垃圾。有没有办法在这种情况下强制转换这些类型,或者唯一的解决方案是使用一些类型的临时变量short?
c floating-point integer type-conversion function-definition