找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1603|回复: 6
打印 上一主题 下一主题
收起左侧

关于51单片机C语言求数组大小的问题

[复制链接]
跳转到指定楼层
楼主
ID:1065477 发表于 2023-3-7 22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机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;
}

麻烦请教一下大佬,如何才能在函数体内求得正确的字符数大小
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1012735 发表于 2023-3-8 01:24 | 只看该作者
strlen(char*)
回复

使用道具 举报

板凳
ID:1034262 发表于 2023-3-8 09:53 | 只看该作者
你试试  unsigned char charNum = sizeof(zk)/16,就可以得到字符数。
回复

使用道具 举报

地板
ID:1065477 发表于 2023-3-8 10:56 | 只看该作者
coody_sz 发表于 2023-3-8 09:53
你试试  unsigned char charNum = sizeof(zk)/16,就可以得到字符数。

这个方法已经试过了,不太管用
回复

使用道具 举报

5#
ID:97322 发表于 2023-3-9 10:04 | 只看该作者
sizeof(zk)/sizeof(zk[0])
回复

使用道具 举报

6#
ID:353115 发表于 2023-3-9 10:54 | 只看该作者
不可以的,数组经过函数形参传参后,会退化为指针的。得使用sizeof(Mode_Tri)/16
回复

使用道具 举报

7#
ID:807182 发表于 2023-3-9 14:22 | 只看该作者
直接strlen就可以啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表