找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机c语言实参和形参类型一致,但数值大小不同,为什么呢

[复制链接]
回帖奖励 6 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次(中奖概率 50%)
跳转到指定楼层
楼主
我给长整型变量ShuZhi赋16010070,然后代入长整型形参a,但在debug中得到a的值为19286。这是为什么呀我已经在debug检查过a确实是赋上了16010070,但在传递到a后,a的值为19286.....

单片机c语言源程序:
  1. void main()
  2. {
  3. unsigned long int ShuZi;
  4.   while(1)
  5.         {
  6.                 ShuZi=16010070;
  7.                 Input(ShuZi);
  8.                 Display();
  9.         }
  10. }
  11. /****子函数***/
  12. void Input(unsigned long int a)
  13. {...}
复制代码




360截图20171117221437915.jpg (4.71 KB, 下载次数: 61)

360截图20171117221437915.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149988 发表于 2017-11-18 04:48 | 只看该作者

RE: 单片机c语言实参和形参类型一致,但数值大小不同,为什么呢

问题可能出在这里:void Input(unsigned long int a), long是32位数据类型。int是16位数据类型,单片机究竟执行哪个数据?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:250632 发表于 2017-11-18 09:23 | 只看该作者
#在这里快速回复#:void Input(unsigned long int a), long是32位数据类型。int是16位数据类型,单片机究竟执行哪个数据要看你的接口,int模块不知道?
回复

使用道具 举报

地板
ID:190832 发表于 2017-11-18 10:08 | 只看该作者
不能写unsigned long int,应该写unsigned long,没有unsigned long int 这种类型
回复

使用道具 举报

5#
ID:184267 发表于 2017-11-18 11:58 | 只看该作者
本帖最后由 MHNMHN 于 2017-11-18 15:07 编辑
不倒翁.WZT 发表于 2017-11-18 04:48
问题可能出在这里:void Input(unsigned long int a), long是32位数据类型。int是16位数据类型,单片机究 ...

问题已经解决了,是我声明函数部分没有改好所导致的................................
回复

使用道具 举报

6#
ID:184267 发表于 2017-11-18 12:02 | 只看该作者
问题已经解决了,谢谢大家。主要是定义出了问题,我不应该写unsigned long int ,虽然能通过编译,但实现不了想要的效果
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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