(sizeof(a) / sizeof(*(a)))解析

/* Private define ------------------------------------------------------------*/
#define RxBufferSize   (countof(RxBuffer) - 1)
/* Private macro -------------------------------------------------------------*/
#define countof(a)   (sizeof(a) / sizeof(*(a)))

a一般指数组:
(1) sizeof(a):指一个数组所占的字节数
(2) *(a):a为数组名,实质上是数组第一个元素的地址,对此地址进行间接访问操作 *(a)就是数组第一个元素。
(3) 数组内每个元素的数据类型一样的,因而每个元素所占内存字节数一样。sizeof(*(a)))指一个元素所占字节数。
(4)(sizeof(a) / sizeof(*(a)))则可以算出数组元素的个数,即数组长度Size

猜你喜欢

转载自blog.csdn.net/Eterlove/article/details/123870851