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的結果去影響changeB的if判斷.
開始我的方法是建立兩個全局變量a和b,試圖在changeA函數內部修改全局變量int a的值,結果測試后發現,在changeA里修改后,值可以改變,但是changeA運行結束后int a的值依然為1,并沒有發生變化,
所以我就在loop中增加了println的監控,我發現a只是在changeA中發生了改變,全局變量一直都沒有因為changeA的運行發生變化,所以我改變了我的思路,我準備將changeA實例化給retA, 然后return一個返回值,再將retA傳參給changeB進行判斷.
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;} }代碼如下,修改后編譯下發現報錯了,void value not ignored as it ought to be 和 return-statement with a value, in function returning ‘void’ [-fpermissive] , 查了資料發現void 建立的函數不能把返回值實例給一個變量,所以就把void改成了int,結果測試成功了.并且我發現changeB參數名稱可以和傳參的名稱不一樣
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("成功了");} }總結
以上是生活随笔為你收集整理的void value not ignored as it ought to be的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天动手熟悉了一下css和php
- 下一篇: 数据挖掘原理与算法_【干货】UIUC韩家