C言語のvoid型を分岐でreturnする方法
auです。
void型の関数を使用していて、int型みたいに"return 0"をしようとするとwarningで返されるのでどうすればいいかと思い調べてみました。
return 0で返そうとしてみる
以下のようなプログラムを組み、void型の中でreturn 0で返そうとしました。
#include <stdio.h> void sum(void) { return 0; } int main(void) { sum(); return 0; } // compile結果 void2.c: In function ‘sum’: void2.c:4:12: warning: ‘return’ with a value, in function returning void return 0; ^
warningで返されてしまい、void型にreturnがついてるよといわれてしまいました。
しかし、if分岐などで途中で関数を終了させたい場合などでreturnを使いたくなると思います。
ですので、warningの出ないvoid型のreturnの方法について調べてみました。
void型でwarningの出ないreturnのやり方
warningの出ないreturnの仕方は「return;」でした。考えてみれば「あぁ、なるほど」という内容でした。
return;を使って自然数を足し算するプログラムを組みました。
#include <stdio.h> void nat_sum(int a, int b) { int sum = a + b; if (sum < 0) { printf("自然数にはなりません\n"); return; } printf("%d + %d = %d\n", a, b, sum); } int main(void) { int a = 0; int b = 0; printf("1つ目の数字: "); scanf("%d", &a); printf("2つ目の数字: "); scanf("%d", &b); nat_sum(a, b); return 0; } // 実行結果 1つ目の数字: 0 2つ目の数字: -1 自然数にはなりません 0 + -1 = 31 1つ目の数字: 1 2つ目の数字: 2 1 + 2 = 3