很多控制器都有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,如果有问题,我们可以在此发帖讨论。如果觉得有用,请点赞,点关注。