gpt4 book ai didi

c++ - 如何指定指向未对齐 int 的指针?

转载 作者:行者123 更新时间:2023-11-30 00:48:18 25 4
gpt4 key购买 nike

struct Intx4 {
int data[4];
};

Intx4 loadIntx4(void const *p) {
auto up alignas(1) = (int const *)p; // Does this line correct? (compiled ok in clang)
Intx4 r;
for (int i = 0; i < 4; i++) r.data[i] = up[i];
return r;
}

我也尝试了以下,它们都无法在 clang 中编译:

int const *up alignas(1) = (int const *)p;
auto up = (int const alignas(1) *)p;

最佳答案

读取未对齐的整数:

int i;
void* ptr_to_unaligned;
...
memcpy (&i, ptr_to_unaligned, sizeof(i));

C++ 中没有未对齐的整数类型,因此您必须使用 void* 来凑合。

关于c++ - 如何指定指向未对齐 int 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32050802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com