haichaofine 发表于 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 !希望有人指点!

haichaofine 发表于 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:

}
只能等高人指点了!

Super169 发表于 2014-11-2 13:00:36

你知道 char 是什麼意思嗎?
char 的值是 5 時, 又是什麼樣的字符?
如果你想回傳數值, 就不要把結果設定為 char, 當你設定成 char 時, println 就不會幫你把數值轉成字符輸出, 而是直接把 char 的內容輸出了.

haichaofine 发表于 2014-11-2 22:29:07

非常感谢高人指点!我改一下试试!

haichaofine 发表于 2014-11-2 22:41:49

返回成功,再次感谢!之前也考虑过输出的是5的字符,后来改过用Serial.write()输出!但没想到是函数类型错误,如梦方醒!
页: [1]
查看完整版本: 求高人指点!