相关疑难解决方法(0)

什么是严格别名规则?

当询问C中常见的未定义行为时,灵魂比我提到的严格别名规则更加开明.
他们在说什么?

c strict-aliasing undefined-behavior type-punning

778
推荐指数
10
解决办法
19万
查看次数

在 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

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