memory-alignment 相关问题

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

英特尔文档,原子访问描述没有意义

我想知道这句话的意思,解析。 对适合高速缓存行的高速缓存内存进行未对齐的 16 位、32 位和 64 位访问 我实在看不懂,想了解一下...

回答 1 投票 0

使用按位运算符确保堆栈指针对齐

假设我想在堆栈上保留 8 个字节,并且我还想确保当前堆栈指针是 8 字节对齐的。我看到一些代码使用以下逻辑确保当前 sp 8 字节对齐: ...

回答 1 投票 0

为什么CPU不能直接访问不是总线宽度倍数的地址?

在我寻求了解结构填充在 Linux x86 环境中的 C 语言中如何工作时,我了解到对齐访问比未对齐访问更快。虽然我认为我理解其原因...

回答 1 投票 0

数组的普通嵌套数组是否保证是连续的?

我假设嵌套的 std::array 不能假设内存是严格连续的:例如参见:嵌套 std::array 中的数据是否保证是连续的? 以及其他相关问题。 那里

回答 2 投票 0

将 C 指针转换为不同类型时要记住的规则

我已经使用 C 指针有一段时间了,一切都按预期工作。然而现在我遇到了 ISO 标准,它说“如果生成的指针未正确对齐......

回答 2 投票 0

如何对齐特征矩阵的每一列?

如果 Eigen 矩阵中的行数不是对齐步长的倍数(通常是 16 字节),那么看起来只有矩阵的第一列会对齐。例如: 本征::MatrixXf ...

回答 1 投票 0

是否填充 C 结构内的信号量 (sem_t) 以尊重对齐?

我目前正在用 C(在 Ubuntu x64 中)定义一个结构。它看起来像这样: #包括 #包括 #包括 typedef 结构键{ sem_t sem; 炭

回答 1 投票 0

是否在 C 结构中填充了信号量 (sem_t) 以尊重对齐?

我目前正在用 C(在 ubuntu x64 中)定义一个结构。它看起来像这样: #包括 #包括 #包括 typedef 结构键{ sem_t sem; 炭

回答 1 投票 0

解释数组在 LLVM IR 中的对齐方式

我有以下.c文件: #包括 诠释主要(){ int a[2][3] = { 0 }; int i = 1, j = 2; 整数 c = 10,d = 20; d = c + a[i][j]; printf("%d ", d); 退...

回答 0 投票 0

编译器能否通过将它们放置在非对齐地址中来避免在结构中填充?

假设我们有结构 结构{ 字符 c; uint32_t我; } 我的结构体; 从我在网上看到的情况来看,编译器在字符与 uint32 之间填充 3 个字节以进行对齐。 可以

回答 1 投票 0

Dose 编译器总是将结构放在对齐的地址中?

假设我有结构: typedef struct my_char { 字符 c; } my_char_t; 我可以假设任何时候内存地址都会对齐吗? 我想也许是的,因为在教程中我看到了这样的结构:

回答 1 投票 0

为什么跨高速缓存行边界的变量原子存储编译为普通 MOV 存储指令?

让我们看一下代码 #包括 #pragma pack(推,1) typedef 结构 test_s { uint64_t a1; uint64_t a2; uint64_t a3; uint64_t a4; uint64_t a5; uint64_t a6; ...

回答 1 投票 0

Go:填充结构成员以从二进制文件中读取对齐的结构

我知道当 Go 程序使用 binary.Read 从由 C 程序(或任何其他使用标准对齐的程序)编写的二进制文件中读取解压结构时,我需要添加一些 pa...

回答 1 投票 0

如果我将结构的所有数据类型更改为 char ,我得到的大小为 6,即使对象布局有偏移量

来自这篇文章 我已将 ParticleTwo 更改为 typedef struct ParticleTwo { 字符型; ...

回答 0 投票 0

通过更改结构成员声明顺序来减小结构的大小

我正在尝试根据它的成员来了解结构的大小,如数据对齐的简短教程所述(请参阅此处。文章指出“所有数据在

回答 2 投票 0

是否可以在编译时或运行时检查 std::align 的限制?

我想使用 std::align1 将用于存储的内存区域对齐到特定的二次方对齐。 如果对齐值不是 fundam,这显然会调用 UB ...

回答 1 投票 0

std::atomic_ref 需要对齐

根据 cppreference,硬件可能要求 atomic_ref 引用的对象比其他 T 对象具有更严格的对齐方式,并且 atomic_ref 上的操作是否...

回答 1 投票 0

我知道这都是具体的实现,但为了举例说明,我们假设对于某台现代计算机:int占了一整条WORD short占了半个WORD 会不会把短 ...

回答 1 投票 1

为什么我在发送一个结构体到着色器存储缓冲区时得到了垃圾数据?

我正在用C++编写一个基于opengl的射线跟踪器应用程序。我想从cpu端发送数据到fragment shader。这些数据是一个边界体积层次结构(BVH)树。不幸的是,在...

回答 1 投票 0

有什么办法可以防止变量的对齐度超过其最低要求的对齐度?

由内存对齐不足引起的问题往往看起来是随机出现的,因为事情可以通过巧合正确对齐,直到你改变一些无关的东西。是否有一个编译器标志...

回答 1 投票 0

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