memory-alignment 相关问题

内存对齐意味着对象和变量驻留在系统内存中的特定偏移处。

如何向编译器指示数据已对齐?

考虑到包装了shared_ptr和std::span的代码以实现一些额外的类型安全: 模板 类向量{ 民众: 自动开始() { std::begin(data_); } 自动结束() { std::end(data_)...

回答 1 投票 0

C++ 中自定义 new 运算符有什么要求?

我试图了解 C++ 中自定义重载 new 运算符的真正要求是什么。 特别是关于返回指针的对齐,在运算符 new 的情况下...

回答 1 投票 0

`CreateWindowEx` 似乎返回不正确对齐的指针 Win32

我在用 C 编写的 Win32 项目中有以下代码: const HWND 窗口 = CreateWindowExW(...); static_assert(alignof *window ==alignof (int)); // 1. 始终为真 断言((uintptr_t)窗口%

回答 1 投票 0

我可以使用 std::align 来验证给定指针的对齐方式吗?

以下函数模板尝试在字节数组中定位对象。 我们可以假设参数缓冲区“通常”保存给定类型的对象,但我需要一个诊断(

回答 1 投票 0

联合的未定义行为

在使用 3D 点时,我遇到了这种类型定义方法: 并点_3d { 结构体{ GL双x、y、z; } 坐标; GL双选项卡[3]; }; 因此,坐标...

回答 1 投票 0

是否有 GCC 关键字允许结构重新排序?

我知道为什么 GCC 默认情况下不会重新排序结构的成员,但我很少编写依赖于结构顺序的代码,所以有什么方法可以将我的结构自动标记为

回答 4 投票 0

GCC 为 ARMv8 生成未对齐的访问

我正在设置 ARMv8 嵌入式系统,并在尝试编译以下代码时偶然发现了一个硬故障: 无效test_ram() { const uint8_t golddata[16] = { 0xde, 0xad, 0xba, 0xbe, 0, 0...

回答 1 投票 0

64 字节 CPU 缓存行读取是否与 64 字节边界对齐?

CPU 缓存行通常为 64 字节。当 CPU(例如现代 Intel 处理器)从内存中读取缓存行时,CPU 是否从 64 字节对齐的内存块或任何连续的 64 字节块中读取...

回答 1 投票 0

OpenGL std430 布局如何对齐数组中的元素?

我有一个 C++ 中的 PointLight 结构 结构点光源 { glm::vec4 位置; // 16 字节 glm::vec4 颜色; // 16 字节 浮动强度; // 4 字节四舍五入为 16 字节? 浮动范围; ...

回答 1 投票 0

Rust 中的 Result<T, E> 怎么这么快?

如果您去年一直活跃在编程社区中,那么您肯定听到过对 Rust 执行速度和性能以及 Rus 中出色的 Result 类型的赞扬...

回答 1 投票 0

对齐缓存行并了解缓存行大小

为了防止错误共享,我想将数组的每个元素与缓存行对齐。因此,首先我需要知道缓存行的大小,因此我为每个元素分配相应的字节数。其次我想要...

回答 7 投票 0

为什么使用指针访问未对齐的 uint16 数组时会抛出“对齐异常”,而使用下标访问数组时不会抛出“对齐异常”?

我将使用以下代码来解释我的问题: typedef struct __attribute__((打包)) { uint8_t var; uint16_t 数组[3]; }struct_t; uint8_t 帧[] = {0x01, 0x23, 0x45, 0x67, 0x89,...

回答 2 投票 0

Win32 宽字符串对齐要求

我将 GUI 代码中的问题缩小到 SetWindowTextW(HWND, wchar_t *) 如果新窗口标题未与两个字节对齐,则静默失败。在本例中,SetWindowText() 返回 1(成功)但是

回答 1 投票 0

我可以使用不带alignof的指针算术在结构体中相同类型的连续字段序列之间移动吗?

我知道还有其他类似的问题。我已阅读这些内容,但认为这个问题尚未得到解答。 我可以在连续的(声明序列中连续的)之间移动吗

回答 1 投票 0

使用一些模板化方法理解reinterpret_cast错误

我正在尝试使用一些 C++ ARM 编译器来编译以下代码。 voidpairs_converter(const mem_t& mem, uint16_t* data) {/* 一些东西 */} 模板 排队 无效

回答 1 投票 0

如何通过 `O_DIRECT` 来计算、对齐、偏移和计数 Linux 的直接存储 io

我需要在存储设备上执行direct-io。 这个问题对于缓冲池程序员也有效。 需要的对齐是4096字节, 我正在做 // 给定:7,000(计数),14,000(偏移量) u64

回答 1 投票 0

`__attribute((packed))`会影响其他数据结构的对齐吗?

我试图理解为什么对齐在处理数据结构时很重要以及为什么它会影响内存访问性能。我偶然发现了 C 语法 __attribute__((packed));我是什么

回答 1 投票 0

为什么在intel cpu上对锁定内存的访问不对齐读取中间值?

我现在正在研究未对齐的内存访问。 根据intel文档,Lock指令使用总线锁定跨两个缓存线的内存。 (我有一个“酷睿 i7”CPU。) 9.1.2 总线锁定 英特尔 64 和 ...

回答 1 投票 0

在 GCC 中对齐 malloc()?

GCC或glibc中是否有标准化函数可以在对齐指针处分配内存块? 就像 MSVC 中的 _align_malloc() 吗?

回答 5 投票 0

为了尽可能快的速度,我应该对 CUDA 中的矩阵使用什么步幅?

我正在处理大小范围从 2,000x2,000 到 5,000x5,000 的矩阵,进行乘法和 QR 分解等运算。例如,我很好奇我是否应该调整步幅......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.