技术论坛

 【实用FC系列】之二,SizeOf 统计数据的大小

返回主题列表
作者 主题
yang9188
游侠

经验值:582
发帖数:42
精华帖:2
楼主    2025-09-30 10:08:42
主题:【实用FC系列】之二,SizeOf 统计数据的大小 精华帖 

    很多控制器都有SizeOf这个功能。作用就是统计数据占用的字节数量。但是1X00控制器的标准库和指令中没有这个功能。可是我的一些项目中,尤其与通讯有关的项目需要这个功能,为此我开发了这个FC。

    我们先看看这个FC的外特性。

图 1

    

    图1 是在main中4次调用了SizeOf函数。可以统计出一个数据结构所占用的字节数量。

    下面要说4个问题。

    1,我们注意到data占用8个字节,但是在data这个结构体中的所有数据占用字节总和是6个。这是我们需要注意的问题。

    2,如果同业觉得有帮助的话, 我会把SizeOf的代码分享出来。

    3,对于bool类型的数组。不同CPU占用的字节数不同。比如X86系列CPU以及1500优化块,每个bool类型占用一个字节。对于非优化块,每个bool类型占用一个bit。Sizeof采用非优化块标准,即使data数据是优化数据也如此。

    4,对于bool类型的结构,占用word的整数倍。这是从下图得到的结论。



    5,好像结论有些复杂。没关系,我们无需记忆这些规则。需要的时候用SIZEOF测量一下就可以了。这就是FC:“SIZEOF”存在的意义。

    6,如果有问题,我们可以在此发帖讨论。如果觉得有用,请点赞,点关注。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。