return
関数の句を書き忘れたときにこの問題に遭遇しましたが、 に警告もエラーもありませんでしたgcc
。私はそれを修正しましたが、なぜ関数がreturn
. ここに私が試したいくつかの例があります:
#include "stdio.h"
#include "stdlib.h"
int func1 () {
int i;
i = 2;
}
int func2 (int a) {
int i = a+3;
}
int func3 () {
int i;
for (i = 0; i <= 1; i++);
}
int main(void) {
int a = 0;
int b = 0;
int c = 0;
a = func1();
printf("a = %d \n", a);
b = func2(a);
printf("b = %d \n", b);
c = func3();
printf("c = %d \n", c);
}
結果は次のとおりです。
a = 1
b = 4
c = 7
私の質問:
1) なぜこのような結果になったのですか? これに関する一般的なルールはありますか?
2) エラーを報告するのではなく、なぜこのことを保持するのですか? どこかで「役に立つ」ことはありますか?