新闻  |   论坛  |   博客  |   在线研讨会
关于C51求数组字节数量的详解(sizeof的详解)
0750long | 2009-07-08 13:40:03    阅读:8819   发布文章

关于C51求数组字节数量的详解(sizeof的详解)

 

看了网络上一些关于sizeof的用法,决的都没有针对C51内的详细说明,在此进行详细解释,以便供大家参考:

例如数组:

 unsigned char code parameter_tabal[] =
 {
          1,2,3,4,5,6,7,8,   //password_addr
 };

关于数组parameter_tabal[] 的字节长度计算分析如下:

首先,定义宏定义:#define countof(a)   sizeof(*(a))//(sizeof(a) / sizeof(*(a)))


//sizeof(a) = 数组字节长度(例子为8)
//sizeof(*(a)) = 数组变量类型(char = 1、int = 2(例子为1))
//数组长度=sizeof(数组)/sizeof(*数组)
//数组长度=sizeod(数组)/sizeof(*数组) (数组内为纯数字)
//数组长度=sizeod(数组)-1/sizeof(*数组) (数组内为纯字符或者数字数组混和)

例:unsigned char code parameter_tab[] =
 {
  1,2,3,4,5,6,7,8,"ab"  //password_addr
 }; 

 

最后,那么调用宏定义,即可得出该数组内的字节数量:
#define WriteBufferSize   (countof(parameter_tab))

WriteBufferSize就等于该数组内的字节数量。

完整用法:

//================================================

#define countof(a)   sizeof(*(a))//(sizeof(a) / sizeof(*(a)))

#define WriteBufferSize   (countof(parameter_tab))

//===============================================

WriteBufferSize就是该数组内的字节数量。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客