質問するログイン新規登録

回答編集履歴

1

加筆

2017/05/09 02:53

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -3,4 +3,30 @@
3
3
  なので関数で戻り値として返却せずとも、戻った先でcには値が格納されています。
4
4
 
5
5
  対して関数**内**で定義する変数は、ローカル変数になります。
6
- 関数内でしか使えません。
6
+ 関数内でしか使えません。
7
+
8
+ 追記
9
+
10
+ 関数の戻り値について書き忘れたので追記します。
11
+ 前述したように、ローカル変数は関数内でのみ使えます。
12
+ 関数内で求めた値を呼び出し元に返したい場合に、戻り値を使います。
13
+ 提示されているコードを修正すると以下のようになります。
14
+ ```c
15
+
16
+ void setup() {
17
+ Serial.begin(9600);
18
+ delay(1000);
19
+ int a = 1;
20
+ int b = 3;
21
+ int c;
22
+ c = sum(a,b);
23
+ Serial.println(c);
24
+ }
25
+
26
+ int sum(int a, int b){
27
+ int ret;
28
+ ret = a + b;
29
+ return ret;
30
+ // 便宜上一旦retに入れていますが、return a + b; でも良い
31
+ }
32
+ ```