【发布时间】:2015-06-22 18:20:33
【问题描述】:
我正在尝试在下面的代码中确定 msg 的数组长度。我使用了strlen 和sizeof,但它们不返回6。我可以使用什么函数来确定uint8_t 数组的长度或如何修改以下代码(osal_DataLenght() func)?
int osal_DataLength( char *pString ){
return (int)( strlen( pString ) );
}
void setNewLevel( uint8_t newLevel ){ //GW specific
uint8_t msg[8] = {'\0'};
msg[0] = '0';
msg[1] = '7';
msg[6]= newLevel;
//msg[7] = '0';
printf("the array length:%d\n", osal_DataLength(msg) );
}
int main(void){
setNewLevel(0xD5);
return 0;
}
【问题讨论】:
-
我暂时不需要msg[7],如果必须用它来查找长度,我可以取消注释
-
msg的长度为 8,无论是否初始化所有元素。