OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2343|回复: 4

可能是C语言的问题吧(求结构体组数成员数量一直为0)

[复制链接]

20

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2018-4-27
在线时间
40 小时
发表于 2018-7-30 20:51:17 | 显示全部楼层 |阅读模式
10金钱
void OLED_Show_CN(unsigned char x,unsigned char y,unsigned char *s)
{
    unsigned char cnt = 0;
    unsigned char i,j = 0;

    cnt = sizeof(CN16)/sizeof(typeCN_GB16); //不知道为什么cnt永远为0

   for(i=0; i<cnt; i++)
   {
        if((CN16.Index[0]==*(s))&&(CN16.Index[1]== *(s+1)))
        {
            OLED_Set_Cursor(x,y);
            for(j=0; j<16; j++)
            {
                OLED_WriteData(CN16.Msk[j]);
            }

            OLED_Set_Cursor(x,y+1);
            for(j=0; j<16; j++)
            {
                OLED_WriteData(CN16.Msk[j+16]);
            }
        }  
   }
}

/******这些在头文件
typedef struct
{
       unsigned char Index[2];

最佳答案

查看完整内容[请看2#楼]

你分别单独显示一下sizeof(CN16)和sizeof(typeCN_GB16)的值是多少。 我怀疑你的CN16是个typeCN_GB16类型的数组,sizeof(CN16)是一个指针的长度,也就是4,sizeof(typeCN_GB16)是一个结构体长度,应该是大于4的,4/(>4的数)结果当然是0。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8024
金钱
8024
注册时间
2014-8-13
在线时间
1595 小时
发表于 2018-7-30 20:51:18 | 显示全部楼层
qq455717338 发表于 2018-7-31 00:15
一个是结构体数组的内存,
一个是结构体的内存,
两个的商不是就是结构体数组数目的多少吗?

你分别单独显示一下sizeof(CN16)和sizeof(typeCN_GB16)的值是多少。

我怀疑你的CN16是个typeCN_GB16类型的数组,sizeof(CN16)是一个指针的长度,也就是4,sizeof(typeCN_GB16)是一个结构体长度,应该是大于4的,4/(>4的数)结果当然是0。
回复

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2018-4-27
在线时间
40 小时
 楼主| 发表于 2018-7-30 20:51:48 | 显示全部楼层
不知道为什么  CNT的值一直为0;
回复

使用道具 举报

5

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
378
金钱
378
注册时间
2014-7-27
在线时间
34 小时
发表于 2018-7-30 21:36:41 | 显示全部楼层
sizeof不是求成员个数,而是计算这个结构体占用的内存大小
something different~
回复

使用道具 举报

20

主题

56

帖子

0

精华

初级会员

Rank: 2

积分
103
金钱
103
注册时间
2018-4-27
在线时间
40 小时
 楼主| 发表于 2018-7-31 00:15:54 | 显示全部楼层
liangqiseu 发表于 2018-7-30 21:36
sizeof不是求成员个数,而是计算这个结构体占用的内存大小

一个是结构体数组的内存,
一个是结构体的内存,
两个的商不是就是结构体数组数目的多少吗?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 21:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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