也就是说,从 c/cpp 标准看。。直接
int64 load_int64(void *src) {
return *static_cast<int*>(src);
}
这个函数的行为是未定义的是吗?在不同的机器底下,可能会有不同的结果,或者异常?
【 在 z16166 (Netguy) 的大作中提到: 】
: 单纯的cast肯定不会报错,只是deref时可能触发系统异常。也就是语言或者编译器无要求,只是硬件/os的要求。
: x86是没问题的(只是默认情况下。有寄存器开关的),随便align。
: windows下只有kerner driver或者少数的API对于传入的mem有align要求。API的align要求一般也是下层的kernel driver或者硬件引起的。不过这个传参的align和deref的align有差异。
: ...................
--
FROM 140.224.35.*