C++指针的适当对齐方式
C++ pointer's suitable alignment
[basic.stc.dynamic.allocation]/2 关于分配函数:
返回的指针应适当对齐,以便可以 转换为具有基本 对齐要求(3.11(,然后用于访问对象或 阵列在分配的存储中(直到显式存储 通过调用相应的释放函数来解除分配(。
有点不清楚。我认为任何指向(包括void*
(类型的指针的对齐方式都等于 8。返回的指针应适当对齐的要点是什么...?你能得到一个没有合适的对齐指针的例子吗?
许多系统要求取消引用的指针对齐为类型大小的倍数。例如,shorts
的指针是 2 个字节的倍数,char
指针是不受限制的,等等。并非所有系统都有此要求,但是在这些系统上访问未对齐的内存通常非常慢,因此通常程序员无论如何都会尝试保持所有内容对齐。
如果你想在你的系统上四处逛逛,你可以找到带有alignof
的类型的对齐要求。对于任何类型,未正确对齐的指针可能是类似 0xFFFF0002
的指针,对于任何 4 字节或更高类型,它都不会对齐。
简而言之,该文档所说的是,返回的内存将针对任何基本类型对齐。
相关文章:
- 为什么我可以将变量存储在不是其最小对齐方式的倍数的地址?
- 具有调整对齐方式的类型定义
- size_t的大小和对齐方式是否与ptrdiff_t相同?
- 逗号运算符在对齐方式中
- vcpkg:指定结构成员对齐方式
- 使用字节数组具有单字节对齐方式的结构是否安全
- C++对齐方式(何时使用对齐方式)
- 编译器会秘密增加结构的对齐方式吗?
- C++17 中函数参数的指针对齐方式
- 未在此范围内声明的对齐方式?
- 如何控制 clang 格式新行中 lessless 的对齐方式
- C++ 编译器正在更改我的结构的对齐方式.我怎样才能防止这种情况
- 是否有符合标准的方法来确定非静态杆件的对齐方式?
- 重载运算符是具有较小默认对齐方式的新增运算符
- 结构和对齐方式的大小
- Sizeof 舍入到对齐方式,但编译器仍将对象放在剩余的字节中
- 是否可以让 std::vector<char> 使用选定的内存对齐方式分配内存
- 对齐方式与指针中尾随零的数量有何关系
- 对齐方式究竟如何影响内存布局和新放置的巴哈维?
- 幻影类型是否与原始类型具有相同的对齐方式