极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9021|回复: 4

求高人指点!

[复制链接]
发表于 2014-11-2 09:58:39 | 显示全部楼层 |阅读模式
写程序时,遇到问题!因为C语言不是很熟,望高人指点!问题是关于函数值返回的,这个在其他版本的C语言中是没问题的,但arduino中却返回为空!代码是
char run_0(void){
  return 5;
}
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  Serial.print("runt=");
  Serial.println(run_0());
  delay(500);
  // put your main code here, to run repeatedly:

}

上面的代码在arduino中,返回的是“runt=”,没有run_0()函数的返回值5 !希望有人指点!
回复

使用道具 举报

 楼主| 发表于 2014-11-2 10:04:56 | 显示全部楼层
自己坐个板凳吧,把代码改了一下,用公共变量还是空
char val=0;
char run_0(char a,char b){
  val=a+b;
  return val;
}
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  Serial.print("runt=");
  Serial.print(run_0(3,4));
  Serial.print("runt2=");
  Serial.println(val);
  
  delay(500);
  // put your main code here, to run repeatedly:

}
只能等高人指点了!
回复 支持 反对

使用道具 举报

发表于 2014-11-2 13:00:36 | 显示全部楼层
你知道 char 是什麼意思嗎?
char 的值是 5 時, 又是什麼樣的字符?
如果你想回傳數值, 就不要把結果設定為 char, 當你設定成 char 時, println 就不會幫你把數值轉成字符輸出, 而是直接把 char 的內容輸出了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-2 22:29:07 | 显示全部楼层
非常感谢高人指点!我改一下试试!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-2 22:41:49 | 显示全部楼层
返回成功,再次感谢!之前也考虑过输出的是5的字符,后来改过用Serial.write()输出!但没想到是函数类型错误,如梦方醒!
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-17 01:52 , Processed in 0.042734 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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