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