リカルドです。
CS+で、C言語の実験をしてみました。 次のプログラムの A = Sub4(5) の所で返り値が有りません。 しかしコンパイル・エラーにはなりません。 CS+のチェックが甘いのか、C言語の仕様なのか、どちらなんでしょう。
int Sub4(int D) ; int main(void){int A ;A = Sub4(5) ; // 「int」の返り値が無くてもエラーにはならない} int Sub4(int D){}
GCCでも似たような議論がされていますね。警告を出して当然、という結論にはなっていないようです。GCCでは-Wunusedで警告を出させることもできますが、それはそれでうるさそうです。No warning for main() without a return statement with -std=c99https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53232
Okra さん
回答有難う御座います。