请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3353|回复: 2

问一个关于i2c的问题

 关闭 [复制链接]

2

主题

3

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2017-2-17 15:17:43 | 显示全部楼层 |阅读模式
iic为什么在读函数时用unsigned char I2cReadByte(),而不用void I2cReadByte()?
回复

使用道具 举报

20

主题

1343

帖子

8339

积分

论坛元老

Rank: 8Rank: 8

积分
8339
发表于 2017-2-17 15:20:09 | 显示全部楼层
本帖最后由 HC6800-ES-V2.0 于 2017-2-17 15:31 编辑

既然是读,那么是不是应该返回一个读取的值呢?知识点是这样的:
函数的定义
函数定义的一般格式如下:
函数类型  函数名(形式参数表)  [reentrant][interrupt  m][using n]
形式参数说明
{
    局部变量定义
    函数体
}
前面部件称为函数的首部,后面称为函数的尾部,格式说明:
1.函数类型
函数类型说明了函数返回值的类型。
2.函数名
函数名是用户为自定义函数取的名字以便调用函数时使用。
3.形式参数表
形式参数表用于列录在主调函数与被调用函数之间进行数据传递的形式参数。
4.reentrant修饰符
这个修饰符用于把函数定义为可重入函数。所谓可重入函数就是允许被递归调用的函数。函数的递归调用是指当一个函数正被调用尚未返回时,又直接或间接调用函数本身。一般的函数不能做到这样,只有重入函数才允许递归调用。
5.interrupt  m修饰符
interrupt m是C51函数中非常重要的一个修饰符,这是因为中断函数必须通过它进行修饰。在C51程序设计中,当函数定义时用了interrupt m修饰符,系统编译时把对应函数转化为中断函数,自动加上程序头段和尾段,并按51系统中断的处理方式自动把它安排在程序存储器中的相应位置。

这不是最完整的知识点,有必要的话,可以找本C语言的书看看

回复 支持 1 反对 0

使用道具 举报

139

主题

382

帖子

1531

积分

金牌会员

Rank: 6Rank: 6

积分
1531
发表于 2017-2-17 17:43:20 | 显示全部楼层
楼上分析的非常透彻,赞一个
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-3-28 17:01 , Processed in 0.086711 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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