memory-alignment 相关问题

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

对齐简单的类,以允许在没有UB的情况下进行数组访问

假设我有以下简单的类:struct employee {std :: string name;短薪; std :: size_t age;员工(std ::字符串名称,短薪,std :: size_t ...

回答 1 投票 1

获取处理器的内存粒度

如何在C语言中获取CPU的内存粒度?假设我要分配一个数组,其中所有元素都正确地与内存对齐。我可以将每个元素填充到一定的大小N以实现此目的。 ...

回答 2 投票 1


在C中引用对齐的空结构?

我在SameBoy模拟器(v0.13)中遇到了一组奇怪的宏,该宏似乎使用空结构来寻址数据。看起来像这样:#define GB_PADDING(type,old_usage)type old_usage ## ...

回答 1 投票 0

在C中取消引用对齐的空结构?

我在SameBoy模拟器(v0.13)中遇到了一组奇怪的宏,该宏似乎使用空结构来寻址数据。看起来像这样:#define GB_PADDING(type,old_usage)type old_usage ## ...

回答 1 投票 0

std :: condition_variable的内存位置可能导致futex错误

我们的软件中存在一个错误,导致令人恐惧的错误:futex工具返回了意外的错误代码。我们将其追溯到一个问题,其中std :: condition_variable在...

回答 1 投票 2

堆上是否有针对页面对齐的内存分配的优化或其他API?

我将要编写一个表示双端队列的类,就像std :: dequeue一样,但是具有存储任何普通可破坏类型的能力,并且没有索引支持。迭代或弹出...

回答 1 投票 0

原子值的部分比较和完全交换

问题如下。给定一个POD对象,该对象具有两个部分:索引和数据。我想对它执行原子条件交换操作,条件是检查...

回答 3 投票 2

atomic_ref,当外部基础类型未按要求对齐时

我在p0019r8上阅读了以下内容:atomic_ref(T&obj);要求:被引用的对象应与required_alignment对齐。如果未对齐,则cppreference将此解释为UB:...

回答 1 投票 2

C ++ 11:16字节的atomic <>变量是否自动对齐到16字节的边界以允许CMPXCHG16B指令?

是否有16个字节的atomic <>变量自动在16个字节的边界上对齐,从而允许编译器/运行时库有效地使用x86 CMPXCHG16B指令?还是我们应该...

回答 1 投票 1

如何确定x86-64程序集中是否输入了一个16字节对齐地址的循环?

我是x86-64的初学者,尤其是在性能优化方面,我试图做得更好。我已经阅读了agner优化手册第2卷的各个部分。它是...

回答 1 投票 2

为什么-Wcast-align不警告在x86上从char *转换为int *?

我知道gcc有一个选项-Wcast-align,它在投射指针时发出警告,从而增加了目标的所需对齐方式。这是我的程序:char data [10]; int ptr = *((...

回答 1 投票 11

“双精度”类型是否需要8字节对齐?

我了解字对齐,这使得cpu在将整数读入寄存器时只需要读一次。但是,“双精度”是否需要8字节对齐(假设为32位系统)?什么是...

回答 5 投票 4

为什么alignof(max_align_t)16?

我正在x86_64 Intel处理器上运行Debian。 gcc(Debian 8.3.0)编译以下程序#include #include #include int main(){...

回答 1 投票 2

在结构中使用长双精度时的对齐方式

我通常知道,一个struct实例将对齐其最宽的标量成员。我声明了一个具有长double数据类型成员的结构。 struct try {char a;长双b; } ...

回答 1 投票 0

如何将C结构正确写入磁盘上的文件,因此可以在其上使用mmap?

我在内存中使用以下C结构:typedef struct MyStructHdr {char text [4]; int version_num; uint64 init_value; uint64个条目[]; } MyStructHdr; typedef ...

回答 1 投票 0

NASM中.data节中的变量对齐

使用Agner Fog的objconv的输出,我看到了此注释的两个实例:注意:内存操作数未对齐。性能损失可以通过在数据声明之前添加...

回答 1 投票 1

当sizeof的大小和实际对象的大小不匹配时,一切如何工作(包括运算符'->'?)>

在下面的代码中,我定义了一个9字节的结构头,它的大小为16字节。然后,我从堆中动态分配9个字节,并将其分配给标头指针。 struct ...

回答 1 投票 0

为什么#pragma pack也影响结构自身的对齐方式?

我注意到,在结构周围使用#pragma pack时,它内部的对齐方式不仅是受影响的唯一对齐方式,而且结构本身的对齐方式也会发生变化。请考虑以下内容:...

回答 1 投票 1

我可以检测和更改gcc / g ++中结构的当前数据对齐设置吗?

我的问题基于此Wiki答案的一部分,该问题的答案是:为什么结构的sizeof不等于每个成员的sizeof之和? (强调我的):“重要提示:C和...

回答 2 投票 0

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