C语言问题:结构中元素的内存排列顺序

2 views
Skip to first unread message

宋 为

unread,
May 8, 2018, 8:04:00 AM5/8/18
to TJLUG邮件列表
记得C语言里面结构中的各个元素在内存中排列的顺序好像是没有标准的。

但是现在正在做一个东西,需要硬写出来的机器码和C语言写的库协作,暂时不考虑移植。那么在amd64的Linux上,C语言结构元素的layout有没有标准呢?

Luo Yong

unread,
May 8, 2018, 10:34:53 AM5/8/18
to tj...@googlegroups.com
没听说过,好像连当初的UNIX内核代码里都是这么写的,Linux内核驱动程序里也有这么写的地方,没什么反对意见说明这么用挺好,最多编译之前先跑几个测试用例


From: tj...@googlegroups.com <tj...@googlegroups.com> on behalf of 宋 为 <leo_s...@outlook.com>
Sent: Tuesday, May 8, 2018 8:03:55 PM
To: TJLUG邮件列表
Subject: [TJLUG #4823] C语言问题:结构中元素的内存排列顺序
 
记得C语言里面结构中的各个元素在内存中排列的顺序好像是没有标准的。

但是现在正在做一个东西,需要硬写出来的机器码和C语言写的库协作,暂时不考虑移植。那么在amd64的Linux上,C语言结构元素的layout有没有标准呢?

--
这是一封来自TJLUG (Tianjin Linux User Group) 的邮件。
您收到此信息是由于您订阅了 Google 论坛“TJLUG”论坛。
要在此论坛发帖,请发送或回复电子邮件到 tj...@googlegroups.com
IRC/Telegram群组,活动记录等详情见信息页: https://github.com/TJLUG/TJLUG-BBS
---
您收到此邮件是因为您订阅了 Google 网上论坛的“TJLUG”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到tjlug+un...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/d/optout。

Luo Yong

unread,
May 8, 2018, 10:38:03 AM5/8/18
to tj...@googlegroups.com
想起来了,读/dev文件系统就经常用这种方式

From: tj...@googlegroups.com <tj...@googlegroups.com> on behalf of Luo Yong <luo.yo...@hotmail.com>
Sent: Tuesday, May 8, 2018 10:34:51 PM
To: tj...@googlegroups.com
Subject: Re: [TJLUG #4824] C语言问题:结构中元素的内存排列顺序
 
您收到此邮件是因为您订阅了Google网上论坛上的“TJLUG”群组。

Zhongchao Qian

unread,
May 8, 2018, 11:57:03 AM5/8/18
to tj...@googlegroups.com
有顺序吧,但是可能需要明确的padding?

> On May 8, 2018, at 10:38 AM, Luo Yong <luo.yo...@hotmail.com> wrote:
>
> 想起来了,读/dev文件系统就经常用这种方式
> From: tj...@googlegroups.com <tj...@googlegroups.com> on behalf of Luo Yong <luo.yo...@hotmail.com>
> Sent: Tuesday, May 8, 2018 10:34:51 PM
> To: tj...@googlegroups.com
> Subject: Re: [TJLUG #4824] C语言问题:结构中元素的内存排列顺序
>
> 没听说过,好像连当初的UNIX内核代码里都是这么写的,Linux内核驱动程序里也有这么写的地方,没什么反对意见说明这么用挺好,最多编译之前先跑几个测试用例
>

宋 为

unread,
May 9, 2018, 1:17:17 AM5/9/18
to tj...@googlegroups.com
啊,我现在就怕有什么padding,但是没能找到相关的资料

Luo Yong

unread,
May 9, 2018, 10:00:14 AM5/9/18
to tj...@googlegroups.com
谁敢改格式Linus堵半路上骂他去,那么多驱动都白写了

Sent: Wednesday, May 9, 2018 1:17:12 PM
To: tj...@googlegroups.com
Subject: Re: [TJLUG #4828] C语言问题:结构中元素的内存排列顺序
 
Reply all
Reply to author
Forward
0 new messages