OpenEdv-开源电子网

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

请解释一下这条语句的意思是什么?

[复制链接]

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
发表于 2018-2-8 16:50:35 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 rjx007 于 2018-2-8 16:57 编辑

请解释一下下面函数里红色语句的意思,最好详细些,先谢过了!

//在指定位置显示一个字符
//x,y:起始坐标
//num:要显示的字符:" "--->"~"
//size:字体大小 12/16/24
//mode:叠加方式(1)还是非叠加方式(0)
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{                                                            
    u8 temp,t1,t;
        u16 y0=y;
        u8 csize=(size/8+((size%8)?1:0))*(size/2);                //得到字体一个字符对应点阵集所占的字节数        
         num=num-' ';//得到偏移后的值(ASCII字库是从空格开始取模,所以-' '就是对应字符的字库)
        for(t=0;t<csize;t++)
        {   。。。。。。}
其中((size%8)?1:0)的意思是不是说:如果size是8的整倍数,就取1,如果不是8的整倍数,就取0呢?


最佳答案

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

(size/8+((size%8)?1:0))*(size/2) 如果size被8整除,则(size/8+((size%8)?1:0))等于(size/8),否则为(size/8+1) 此数再乘以右面的(size/2)。 得到最终结果。 知识点, ?:运算符 ((条件)? (条件为真则):(条件为假则))
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-8 16:50:36 | 显示全部楼层
(size/8+((size%8)?1:0))*(size/2)


如果size被8整除,则(size/8+((size%8)?1:0))等于(size/8),否则为(size/8+1)


此数再乘以右面的(size/2)。

得到最终结果。

知识点,  ?:运算符   
((条件)? (条件为真则):(条件为假则))
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2018-2-8 17:11:15 | 显示全部楼层
谢楼上,好像应该是:
如果size被8整除,则(size/8+((size%8)?1:0))等于(size/8+1),否则为(size/8)
回复

使用道具 举报

6

主题

462

帖子

0

精华

高级会员

Rank: 4

积分
906
金钱
906
注册时间
2017-12-15
在线时间
111 小时
发表于 2018-2-8 17:15:44 | 显示全部楼层
rjx007 发表于 2018-2-8 17:11
谢楼上,好像应该是:
如果size被8整除,则(size/8+((size%8)?1:0))等于(size/8+1),否则为(size/8)

如果能被8整除,那么(size%8)=0,逻辑判断为假,取值为1:0的右侧,为0。
回复

使用道具 举报

64

主题

249

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1073
金钱
1073
注册时间
2017-6-10
在线时间
279 小时
 楼主| 发表于 2018-2-8 17:26:21 | 显示全部楼层
懂了,谢谢啊!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 07:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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