腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(8691)
视频
沙龙
1
回答
64位计算机上的
结构
对齐
、
、
我在64位
Linux
机器上有以下
结构
。volatile unsigned int slock;现在,我想了解一下在遵循LP64标准的64位__wait_queue_head计算机上
结构
__wait_queue_head的
对齐
情况。据我所知,从这个
结构
体
的第一个字段开始。是一个无符号整数,它在64位机器上占用4个
字节
,这个
结构
应该从一个4
字节
对齐</em
浏览 8
提问于2012-04-12
得票数 3
回答已采纳
1
回答
新操作符的C++
对齐
,有多重要?
、
据我理解,64位
linux
系统上的指针大小为8
字节
,
对齐
的要求应该是8
字节
对齐
。如果是这样,那么为什么新运算符返回16
字节
(可能是32,但这个数字大于8)
对齐
指针又有什么关系呢?,每个指针是
对齐
的16个
字节
。我的问题如下- 是否有任何副作用使用布局新和
对齐
每个
结构
和指针8
字节
?(我可以想到的一个
浏览 1
提问于2018-02-07
得票数 2
4
回答
双重
对齐
、
、
、
在的讨论之后,我了解到
结构
成员
对齐
的主要原因是性能(以及一些架构限制)。如果我们在编译32位x86时调查微软(Visual C++)、Borland/CodeGear (C++-Builder)、数字Mars (DMC)和GNU (GCC):int的
对齐
是4个
字节
,如果int不
对齐
,可能会读取2行内存块。我的问题是,为什么不让double也是4
字节
对齐
的呢?4
字节
对齐
的double也会导致2行存储
体
读取..
浏览 2
提问于2012-06-20
得票数 9
回答已采纳
1
回答
如何解释数据类型大小及其
对齐
方式?
、
、
、
关于
linux
/gcc中double类型的大小/
对齐
,我有一个问题。在上,它写着: struct foo { double d2;我
浏览 5
提问于2017-07-01
得票数 0
回答已采纳
1
回答
C
结构
对齐
我正在尝试理解
结构
是如何
对齐
的。根据的说法,我会期待这个
结构
体
#include<stdio.h> uint16_t a;{ return 0;具有12
字节
的大小在我的示例中,它只需要8
浏览 10
提问于2016-07-25
得票数 0
5
回答
这个
结构
的大小是如何变成4
字节
的
、
我确实有一个在it.Its中有位字段的
结构
,根据我的说法,它是2个
字节
,但它是4 .I,我在stackoverflow上读到了一些与此相关的问题,但不能与我的problem.This相关,我确实有这样的
结构
main()printf("sizeof struct s = %d bytes \n",sizeof(struct s));} 如果int类型必须在其内存边界上,则输出应为8
字节
,但其显示为4
字节
??
浏览 2
提问于2011-08-19
得票数 2
回答已采纳
4
回答
为什么数据
结构
对齐
对性能很重要?
、
、
、
有没有人能给我一个简短而可信的解释,解释为什么编译器为了
对齐
其成员而向数据
结构
添加填充?我知道这样做是为了让CPU能够更有效地访问数据,但我不明白为什么会这样。如果这只与CPU相关,为什么双4
字节
在
Linux
中
对齐
,而在Windows中8
字节
对齐
?
浏览 5
提问于2010-01-05
得票数 30
回答已采纳
1
回答
alloc_netdev_mqs中的内存
对齐
最近,我研究了
linux
网络驱动程序,并且在
结构
上存在一些内存
对齐
问题。,因为我们希望将
结构
net_device与NETDEV_ALIGN的乘数
对齐
。例如,如果我们有: net_device 3
字节
、NETDEV_ALIGN 4
字节
和私有日期2
字节
: 在(1)位置,我们
对齐
(3,4) => 4
字节
,然后是(私有数据大小)+(净设备大小)= 4+2 =6
字节
。在(2)为什么不使用
对齐</
浏览 11
提问于2015-07-16
得票数 0
回答已采纳
7
回答
使用杂注包(1)时是否存在性能问题?
、
我们的头在大多数
结构
中使用#pragma pack(1) (用于网络和文件I/O)。据我所知,它将
结构
的
对齐
方式从默认的8
字节
更改为1
字节
。假设所有东西都运行在32位
Linux
(可能也是Windows )上,这种打包
对齐
是否会对性能造成影响? 我不关心库的可移植性,但更关心的是文件和网络I/O与不同的#杂注包的兼容性,以及性能问题。
浏览 2
提问于2011-10-17
得票数 14
回答已采纳
2
回答
C
结构
中的
对齐
/填充
下面是定义如下的
结构
: ULONG gatewayIp; UBYTE align; ULONG magicTemp;} GatewayStatus;我概括了我的问题,而不考虑上面的
结构
,在什么情况下我们必须在编程上
对齐
浏览 0
提问于2012-04-26
得票数 0
4
回答
gcc规模(
结构
)给出意想不到的价值
、
我有一个
结构
,Pe_SymbolHeader。uint8_t StorageClass; // 17} Pe_SymbolHeader;0x7fffffffe1580x7fffffffe15e0x7fffffffe161 那么,如果gcc用18个
字节
来存储我
浏览 3
提问于2011-10-02
得票数 1
回答已采纳
3
回答
64位上的uint32_t
对齐
?
、
、
我对64位平台上uint32_t类型的
对齐
很感兴趣。应该是给定的位宽,实际上看起来是这样的:sizeof(uint32_t): 4} A;> printf("sizeof(A): %zd\n", sizeof(A));出于某种原因,uint32_t是8
字节
<e
浏览 3
提问于2012-03-28
得票数 6
回答已采纳
2
回答
如何修复
结构
填充的C++ gcc编译警告
、
、
、
QString name; // [...]当我在Ubuntu18.04上使用gcc的标准版本构建它时,我会收到如下警告: 我知道这个警告的出现是因为编译器需要将我的
结构
的填充调整为一些我可能没有预料到的东西,并且非常好地警告我这个用户。我希望修改这个
结构
的代码,以便我的
对齐
期望是显式的,并且匹配编译器想做的任何事情,因此不需要显示警告。
浏览 0
提问于2018-08-26
得票数 5
回答已采纳
1
回答
C中不需要作为编译器的大小
结构
不添加填充
、
、
因此,我希望编译器能够填充额外的
字节
。这是我的问题。printf("size of struct = %d sizeof q = %d sizeof double = %d\n",sizeof(temp),sizeof(q),sizeof(d1)); 输出为
结构
的大小char(1
字节
)+3
字节
填充+ int(4
字节
)+ double(8
字节
)+ (void*)(4
字节
),它等于20
字节
加上4
字节
,这是由于最长的成员
浏览 3
提问于2014-01-13
得票数 4
回答已采纳
1
回答
为什么CPU不能直接访问不是总线宽度倍数的地址?
、
、
、
、
为了理解在
Linux
x86环境下C语言中
结构
填充是如何工作的,我读到
对齐
访问比错误
对齐
访问更快。虽然我理解其中的原因,但它们似乎都有一个基本的前提假设,即CPU不能直接访问非总线宽度倍数的地址,因此,例如,如果32位总线CPU被指示从地址"2“开始读取4个
字节
的内存,它首先从地址"0”读取4个
字节
,屏蔽前两个
字节
,从地址"4“读取另4个
字节
,屏蔽最后两个
字节
,最后结合两个结果,而不是一次读取4
字
浏览 9
提问于2022-11-28
得票数 0
回答已采纳
2
回答
对齐
、总大小和SSE
、
、
、
、
在那个教程中,他们讨论的是内存
对齐
,所以我开始尝试理解它是如何工作的。// Alignment requirements// short int现在,在PCL中,他们用这个方案定义了点类型(这里是最简单的点,它在每个轴上保持位置)用于SSE
对齐
。(我
浏览 9
提问于2013-12-17
得票数 1
回答已采纳
1
回答
对齐
SSBO的内存,它是包含数组的
结构
数组?
、
、
、
、
我正在使用SSBO将一个八叉树平平,并将它发送到我的片段着色器,我相信我遇到了一些内存
对齐
问题。我使用std430作为布局,并将一个
体
素向量绑定到这个SSBO,这是我的着色器中的
结构
。数组的末尾可能有填充;成员在数组后面的基本偏移量被舍入到基
对齐
的下一个倍数。 我不完全确定
对齐
是什么,我知道向量4占用16
字节
的内存,但是我的数组有多少?那么,这是否意味着我的cIdx数组的基
对齐
为16
字节
?没有后续成员,所以是否有填充被添加到我的
结构</
浏览 8
提问于2021-09-03
得票数 0
回答已采纳
6
回答
64位机器上的
结构
填充
、
、
、
uint32_t var1; uint32_t var3; uint32_t var5; }; 在上面的
结构
中,编译器不填充和分配20个
字节
。现在我们有了另一个
结构
,它包含一个8
字节
的变量,而不是两个4 bytes.In,本例中编译器填充并分配了24个
字节
给这个
结构
。如果编译器将数据
对齐
到8
字节
边界,那么在第一个
结构
中应该有4个
字节</
浏览 79
提问于2016-08-05
得票数 10
回答已采纳
1
回答
为什么在
结构
中内存
对齐
会发生变化?
、
、
、
、
在,i 中,当一个具有8
字节
对齐
的
结构
嵌入到另一个4
字节
对齐
结构
中时,在对8
字节
对齐
结构
之前需要一个填充。至少我以为我能理解。说: int i1;我希望
结构
的所有成员都是8
字节
对齐</
浏览 2
提问于2015-01-09
得票数 1
回答已采纳
1
回答
未
对齐
指针以节省空间:如何在没有UB的情况下干净利落地做到这一点?
、
、
、
、
假设我有一个这样的
结构
: int* somePtr;}
浏览 0
提问于2014-12-14
得票数 1
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
结构体对齐,字节对齐
关于结构体对齐问题
结构体对齐原则在自定义协议解析时的妙用之法
为什么有些结构体中会定义一个字节的数组
c/c+结构体与结构体指针
热门
标签
更多标签
云服务器
ICP备案
对象存储
即时通信 IM
实时音视频
活动推荐
运营活动
广告
关闭
领券