有人能解释一下这是为什么吗?

[复制链接]
3169|9
 楼主| lzymcu 发表于 2010-11-3 00:13 | 显示全部楼层 |阅读模式
问题已经弱弱的不能在弱了,函数返回的明明是0,XreadData、YreadData得到的是这值?
当然把XreadData、YreadData定义为全局变量就没问题,难道不能将函数返回值附给局部变量吗?
未命名.jpg
STM32W 发表于 2010-11-3 08:40 | 显示全部楼层
本帖最后由 STM32W 于 2010-11-3 08:41 编辑

最后return 必须返回确定的值。

如果不想返回值,应该吧函数定义成void key_scan(void)
香水城 发表于 2010-11-3 09:00 | 显示全部楼层
看不懂楼主的问题,:dizzy:
century99 发表于 2010-11-3 10:15 | 显示全部楼层
应该返回一个u8类型的值,听2楼说的做就好了。
ST_ARM 发表于 2010-11-3 11:01 | 显示全部楼层
return ***;
jgphu 发表于 2010-11-3 11:35 | 显示全部楼层
楼主 返回的值和局部变量、全局变量没有关系。 你的函数只能返回0.

因为你 直接return; 相当于 return(0);

你可以用两个函数, 一个返回X。 return(XreadData); 另一个返回Y return(YreadData);
hdp7891000 发表于 2010-11-3 12:35 | 显示全部楼层
同意楼上,另加一句:全局变量可以是因为你对其赋值了。而局部变量到外面就失去作用了。
xjwbh 发表于 2010-11-3 13:25 | 显示全部楼层
因为你的XreadData、YreadData两值在接收完函数的返回值后面没有用到它,而你又定义的为临时变量,所以在你设置的断点处编译器就不会跟你保存,随便给你一个值哄你一下,你当然看到的是不正确的值了。
hzp080401234 发表于 2010-11-3 21:31 | 显示全部楼层
zhendian jifen
rockli 发表于 2010-11-7 17:24 | 显示全部楼层
建议楼主找本c语言的书看一看吧。最典型的就是谭浩强的c语言程序设计
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

96

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部