void value not ignored as it ought to be
今天解決了一個問題:
void value not ignored as it ought to be / return-statement with a value, in function returning 'voi
我想用changeA的結(jié)果去影響changeB的if判斷.
開始我的方法是建立兩個全局變量a和b,試圖在changeA函數(shù)內(nèi)部修改全局變量int a的值,結(jié)果測試后發(fā)現(xiàn),在changeA里修改后,值可以改變,但是changeA運(yùn)行結(jié)束后int a的值依然為1,并沒有發(fā)生變化,
所以我就在loop中增加了println的監(jiān)控,我發(fā)現(xiàn)a只是在changeA中發(fā)生了改變,全局變量一直都沒有因?yàn)閏hangeA的運(yùn)行發(fā)生變化,所以我改變了我的思路,我準(zhǔn)備將changeA實(shí)例化給retA, 然后return一個返回值,再將retA傳參給changeB進(jìn)行判斷.
int a = 1; int b = 1;void setup() {// put your setup code here, to run once:Serial.begin(115200); }void loop() {// put your main code here, to run repeatedly:Serial.println("在changeA修改前的a=");Serial.println(a);changeA(a);Serial.println("在changeA修改后的a=");Serial.println(a);changeB(a); }void changeA(int a) {a = 100;Serial.println("在changeA中的a=");Serial.println(a); } void changeB(int a) {if (a == 100){b =100;} }代碼如下,修改后編譯下發(fā)現(xiàn)報錯了,void value not ignored as it ought to be 和 return-statement with a value, in function returning ‘void’ [-fpermissive] , 查了資料發(fā)現(xiàn)void 建立的函數(shù)不能把返回值實(shí)例給一個變量,所以就把void改成了int,結(jié)果測試成功了.并且我發(fā)現(xiàn)changeB參數(shù)名稱可以和傳參的名稱不一樣
int a = 1; int b = 1;void setup() {// put your setup code here, to run once:Serial.begin(115200); }void loop() {// put your main code here, to run repeatedly:Serial.println("在loop中的a=");Serial.println(a);delay(1000);int retA = changeA(a);Serial.println("在loop中的retA");Serial.println(retA);delay(1000);changeB(retA); }int changeA(int a) {a = 100;return a; } int changeB(int a) {if (a == 100){Serial.println("成功了");} }總結(jié)
以上是生活随笔為你收集整理的void value not ignored as it ought to be的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天动手熟悉了一下css和php
- 下一篇: 数据挖掘原理与算法_【干货】UIUC韩家