相关疑难解决方法(0)

什么是严格别名规则?

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

c strict-aliasing undefined-behavior type-punning

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

将void指针转换为float*/int*时取消引用

一个

int i = 10;
void *p = &i;
printf("%f\n", *(float*)p);
Run Code Online (Sandbox Code Playgroud)

乙

float i=10.00;
void *p = &i; // no change
printf("%d\n", *(int*)p);
Run Code Online (Sandbox Code Playgroud)

为什么A打印0.0而不是10.0?如果我们将A改为B,那么它的输出就是垃圾.

c

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