typedef struct { uint32_t Timer; /@@* 定时计数器 */ uint16_t Ctrl; /@@* 定时器开关控制 */ uint32_t Cnt; /@@* 运行计数器 */ zlfn_st_t fn_call_back; /@@* 回调函数 */ } zl_SoftTimer_t *ptSoftTimer;
zl_SoftTimer_t a[8];这个结构体数组a,sizeof(a)怎么计算
zl_SoftTimer_t a[8];
这里第一个元素占4字节,就是32位
第二个元素,由于存在字节对齐,也是占4字节,就是32位
第三个元素占4字节,就是32位
第四个元素应该是个地址,占4字节,就是32位
故一个结构体占了16字节,a应该是16*8=128字节
回调函数结构体内保存的是地址,和平台有关。8位系统1字节,16位系统2字节,32位系统4字节,64位系统8字节。
uint32_t:4字节
uint16_t:2字节