自从很多年前我意识到这不会默认产生错误(至少在 GCC 中) ,我一直想知道为什么?
我理解您可以发出编译器标志来产生警告,但它不应该总是一个错误吗?为什么非 void 函数不返回有效值是有意义的?
按照评论中的要求举例说明:
#include <stdio.h>
int stringSize()
{
}
int main()
{
char cstring[5];
printf( "the last char is: %c\n", cstring[stringSize()-1] );
return 0;
}
编译。