Почему выпадение из конца непустой функции без возврата значения не приводит к ошибке компилятора?
С тех пор как я понял много лет назад, что это непо умолчанию не выдает ошибку (по крайней мере, в GCC), яМы всегда задавались вопросом, почему?
Я понимаю, что вы можете выдавать флаги компилятора для выдачи предупреждения, но неэто всегда ошибка? Почему имеет смысл, чтобы не пустая функция не возвращала значение, чтобы быть действительным?
Пример в соответствии с просьбой в комментариях:
#include
int stringSize()
{
}
int main()
{
char cstring[5];
printf( "the last char is: %c\n", cstring[stringSize()-1] );
return 0;
}
... компилирует.