搜索
bottom↓
楼主: coole

今晚才基本弄明白STM32是怎样给结构体分配内存空间的?【有几道题大家做做,稍后给出今

[复制链接]

出0入0汤圆

发表于 2010-8-29 23:04:06 | 显示全部楼层
我觉着结构体尾部的填充主要是为了结构体数组的确定性。如果是单独定义结构体变量,有没有尾部填充无所谓。

出0入0汤圆

发表于 2010-8-31 12:57:45 | 显示全部楼层
Mark......

出0入0汤圆

发表于 2010-9-11 11:07:56 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-9-12 22:54:21 | 显示全部楼层
加_packed 完事,一切由编译器决定,速度慢?换高速晶振,不支持就换CPU,现在随便个都上百兆,能慢到哪里去。你用51,8位还对齐个毛啊

出0入0汤圆

发表于 2010-9-12 23:59:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-9-13 06:38:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-28 12:40:22 | 显示全部楼层
mark,对齐和填充

出0入0汤圆

发表于 2010-10-29 08:56:04 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-10-29 09:11:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-29 09:21:44 | 显示全部楼层
mark

出350入8汤圆

发表于 2010-10-29 09:54:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-29 10:04:39 | 显示全部楼层
顶12楼,说的简洁而且清楚

出0入0汤圆

发表于 2010-11-10 09:47:12 | 显示全部楼层
好东西,收藏了。。。。。。。。。。

出0入0汤圆

发表于 2010-11-11 14:16:29 | 显示全部楼层
都是牛人,收藏了。

出0入0汤圆

发表于 2011-1-12 21:25:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-12 22:01:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-1-21 22:48:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-6 20:46:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-6 22:59:44 | 显示全部楼层
mark~

出0入0汤圆

发表于 2011-4-7 14:17:46 | 显示全部楼层
mark 结构体

出0入0汤圆

发表于 2011-4-7 14:35:07 | 显示全部楼层
mark  
结构体分析,日后学习下

出0入0汤圆

发表于 2011-4-7 14:51:23 | 显示全部楼层
如果搞不懂的话,会有啥问题呢?传指针的时候错误?

出110入109汤圆

发表于 2011-4-7 17:12:38 | 显示全部楼层
要下班了,Mark一下~

出0入0汤圆

发表于 2011-4-7 17:53:59 | 显示全部楼层
mrak下 学习

出0入0汤圆

发表于 2011-4-7 17:57:10 | 显示全部楼层
好贴,mark一个

出0入0汤圆

发表于 2011-4-7 20:02:22 | 显示全部楼层
强悍

出0入0汤圆

发表于 2011-4-7 20:07:46 | 显示全部楼层
回复【8楼】ATmega32
-----------------------------------------------------------------------

第六题有问题吧

出0入0汤圆

发表于 2011-4-7 22:00:30 | 显示全部楼层
mark下。

出0入0汤圆

发表于 2011-4-8 09:16:19 | 显示全部楼层
6、  
struct student  
{   
    u8 num;    //偏移地址0,对齐1,填充对齐1
    u8 name;   //偏移地址1,对齐1,填充对齐1
    u32 sex;   //偏移地址4,对齐4,填充对齐4
    u16 score; //偏移地址8,对齐2,填充对齐4
    u8 id;     //偏移地址10,对齐1,填充对齐4
};  
struct student myStudent;  
sizeof(myStudent) = 12   //应该为14吧

出0入59汤圆

发表于 2011-4-8 10:24:35 | 显示全部楼层
留用,谢谢!

出0入0汤圆

发表于 2011-4-8 12:44:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-8 14:50:05 | 显示全部楼层
好吗,好好

出0入0汤圆

发表于 2011-4-8 17:31:02 | 显示全部楼层
恩,留下,

出0入0汤圆

发表于 2011-4-9 13:10:50 | 显示全部楼层
mark 以后查询

出0入0汤圆

发表于 2011-4-11 15:33:01 | 显示全部楼层
C语言用了好几年啦,从来没用过结构体。。。

出0入0汤圆

发表于 2011-4-11 18:23:28 | 显示全部楼层
回复【3楼】ATmega32
-----------------------------------------------------------------------

mark,学习

出0入0汤圆

发表于 2011-4-14 12:54:35 | 显示全部楼层
mark!!!!

出0入0汤圆

发表于 2011-4-14 18:30:25 | 显示全部楼层
mark!!!!!

出0入0汤圆

发表于 2011-4-14 19:47:19 | 显示全部楼层
虽然还是有点迷糊,但感觉又学到了东西,
忽然想到有一天不记得在哪看到的,一位筒子说看完谭的c语言教程,就说自己完全掌握了c语言编程,
想想这人真不是一般的无知

出0入0汤圆

发表于 2011-4-14 19:50:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-15 14:00:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 08:30:19 | 显示全部楼层
学习一下!

出0入0汤圆

发表于 2011-5-15 09:17:10 | 显示全部楼层
顶12楼的,简洁明了。

出0入0汤圆

发表于 2011-5-15 09:42:21 | 显示全部楼层
我也记得跟编译器实现有关系。不论ISO是如何规定的,每个编译器的实现都是不一样的

出100入143汤圆

发表于 2011-5-15 12:22:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 21:28:15 | 显示全部楼层
收藏。

出0入0汤圆

发表于 2011-5-15 22:42:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-15 23:51:38 | 显示全部楼层
Mark

出0入0汤圆

发表于 2011-5-17 08:25:00 | 显示全部楼层
mark  楼主很给力

出0入0汤圆

发表于 2011-5-17 14:47:51 | 显示全部楼层
好东西,虽然实际中用的比较少,但也算是学到东西了,呵呵。

出0入0汤圆

发表于 2011-5-17 15:37:03 | 显示全部楼层
真给力

出0入0汤圆

发表于 2011-5-17 16:47:37 | 显示全部楼层
学习!

出0入0汤圆

发表于 2011-8-21 10:45:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-21 11:04:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-21 12:30:20 | 显示全部楼层
MARK!

出0入0汤圆

发表于 2011-8-21 19:38:52 | 显示全部楼层
马克思...............

出0入0汤圆

发表于 2011-8-23 21:10:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-23 22:04:09 | 显示全部楼层
学习!

出0入0汤圆

发表于 2011-8-23 23:11:01 | 显示全部楼层
标记下

出0入0汤圆

发表于 2011-8-23 23:53:35 | 显示全部楼层
Mark

出0入0汤圆

发表于 2011-8-24 00:30:47 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-8-24 02:09:52 | 显示全部楼层
留下脚印。

出0入0汤圆

发表于 2011-8-24 09:21:05 | 显示全部楼层
看看

出0入0汤圆

发表于 2011-8-24 18:03:37 | 显示全部楼层
5、  
struct student  
{   
    u8 num;      //偏移地址0,对齐1,填充对齐1
    u8 name;     //偏移地址1,对齐1,填充对齐1
    u32 sex;     //偏移地址4,对齐4,填充对齐4
    u16 score;   //偏移地址8,对齐4,填充对齐4
};  
struct student myStudent;  
sizeof(myStudent) = 12

为什么最后那个score要对齐4?

出0入0汤圆

发表于 2011-8-26 12:42:30 | 显示全部楼层
值得研究研究,顶了

出0入0汤圆

发表于 2011-8-26 18:00:35 | 显示全部楼层
有意思,有空用keil调试一下。

出0入0汤圆

发表于 2011-8-31 10:27:30 | 显示全部楼层
回复【楼主位】coole  iAVR
-----------------------------------------------------------------------
二十一楼经典、

出0入0汤圆

发表于 2011-8-31 20:18:08 | 显示全部楼层
学习一下!

出0入0汤圆

发表于 2011-10-8 16:57:05 | 显示全部楼层
学无止境 啊

出0入0汤圆

发表于 2011-10-11 15:03:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-11 16:03:34 | 显示全部楼层
我现在明白了存储大小, 不过还是不太明白存储结构
比如
   struct                                         
{                                          
           char a;                                       
           int b;                                         
           char c;                                       
           short d;                                       
  }
  存储方式:
       |   *    |   *    |   *   |  a   |
       |b[31:24]|b[23:16]|b[15:8]|b[7:0]|
       |d[15:8] |d[7:0]  |   *   |  c   |
为什么不是这样
       |   *    |   *    |   *   |  a   |
       |b[31:24]|b[23:16]|b[15:8]|b[7:0]|
       |   *    | d[15:8]|d[7:0] |  c   | 呢?

出0入0汤圆

发表于 2011-10-12 00:02:41 | 显示全部楼层
很好 学习了

出0入0汤圆

发表于 2011-10-12 00:23:14 | 显示全部楼层
回复【163楼】wanas  
5、  
struct student  
{   
    u8 num;      //偏移地址0,对齐1,填充对齐1
    u8 name;     //偏移地址1,对齐1,填充对齐1
    u32 sex;     //偏移地址4,对齐4,填充对齐4
    u16 score;   //偏移地址8,对齐4,填充对齐4
};  
struct student mystudent;  
sizeof(mystudent) = 12
为什么最后那个score要对齐4?
-----------------------------------------------------------------------
应该是2才对 不过u16改成u32 最后结果也是12

出0入0汤圆

发表于 2011-10-12 00:43:01 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-12 08:06:54 | 显示全部楼层
Mark

出0入0汤圆

发表于 2011-10-12 08:36:50 | 显示全部楼层
mark!!!以后看!!!!

出0入0汤圆

发表于 2011-10-12 09:22:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-12 09:41:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-12 11:44:54 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-10-12 12:06:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-12 14:50:41 | 显示全部楼层
谢谢分享,刚买了一套开发板,学习中。。。

出0入0汤圆

发表于 2011-10-13 17:57:20 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-10-15 16:28:46 | 显示全部楼层
关注

出0入0汤圆

发表于 2011-10-15 17:40:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-3 22:53:23 | 显示全部楼层
mark,struct结构体对齐

出0入0汤圆

发表于 2012-1-3 23:21:47 | 显示全部楼层
Mark.好东西好标记好,以便日后查看

出0入0汤圆

发表于 2012-1-4 01:44:28 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-1-4 03:01:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-4 03:36:19 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-1-4 10:22:33 | 显示全部楼层
好贴学习了

出0入0汤圆

发表于 2012-1-4 11:16:35 | 显示全部楼层
马克思

出0入0汤圆

发表于 2012-2-12 12:22:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-12 23:01:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-13 07:42:01 | 显示全部楼层
Mark~~

出0入0汤圆

发表于 2012-2-13 08:26:32 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-2-13 08:34:29 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-13 08:38:08 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-13 09:01:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-13 09:59:10 | 显示全部楼层
一直都不怎么关注这方面呢,平常都是u8、u16、u32这样排下去的。

出0入30汤圆

发表于 2012-2-13 10:15:42 | 显示全部楼层
MARK。字节对齐。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-5 04:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表