為什么在不返回值的情況下從非空函數的末尾流出不產生編譯器錯誤?自從很多年前我意識到這不會在默認情況下產生錯誤(至少在GCC中),我一直在想為什么?我知道您可以發(fā)出編譯器標志來產生警告,但是它不應該總是一個錯誤嗎?為什么不返回值的非空函數是有效的?評論中要求的一個例子:#include <stdio.h>int stringSize(){}int main(){
char cstring[5];
printf( "the last char is: %c\n", cstring[stringSize()-1] );
return 0;}.編譯.
為什么在不返回值的情況下從非空函數的末尾流出不產生編譯器錯誤?
慕桂英3389331
2019-06-06 13:14:05