标题: 关于51单片机C语言求数组大小的问题 [打印本页]

作者: SuperYh    时间: 2023-3-7 22:57
标题: 关于51单片机C语言求数组大小的问题
单片机C语言源程序如下:
//---------------------------------------------------------------------------------------------------------------
/*MODE:Triangle*/
char code Mode_Tri[]=
{0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x01,0x3E,0x01,0x3F,0x20,0x00,/*"M",0*/

0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,/*"O",1*/

0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,/*"D",2*/

0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,/*"E",3*/

0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,/*":",4*/

0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,/*"T",5*/

0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,/*"r",6*/

0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"i",7*/

0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x19,0x24,0x24,0x12,0x3F,0x20,0x00,/*"a",8*/

0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,/*"n",9*/

0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,/*"g",10*/

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*"l",11*/

0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x24,0x24,0x24,0x24,0x17,0x00};/*"e",12*/
//---------------------------------------------------------------------------------------------------------------

我想求如上字模数组的字符数
void getCharSize(unsigned char zk*)
{
     unsigned char charNum = sizeof(zk)/sizeof(*(zk))/16;
     //这里用Keil Debug看了,charNum =0x03;
}

麻烦请教一下大佬,如何才能在函数体内求得正确的字符数大小

作者: hy47566398    时间: 2023-3-8 01:24
strlen(char*)
作者: coody_sz    时间: 2023-3-8 09:53
你试试  unsigned char charNum = sizeof(zk)/16,就可以得到字符数。
作者: SuperYh    时间: 2023-3-8 10:56
coody_sz 发表于 2023-3-8 09:53
你试试  unsigned char charNum = sizeof(zk)/16,就可以得到字符数。

这个方法已经试过了,不太管用
作者: MTK117    时间: 2023-3-9 10:04
sizeof(zk)/sizeof(zk[0])
作者: qsssuv    时间: 2023-3-9 10:54
不可以的,数组经过函数形参传参后,会退化为指针的。得使用sizeof(Mode_Tri)/16
作者: 暖西夏    时间: 2023-3-9 14:22
直接strlen就可以啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1