почему я получаю предупреждение о "недоступном коде"? Я действительно не понимаю, что я делаю не так.
Цикл не имеет условия возврата: while(1)
, а тело цикла не содержит break
(или goto
), которое выпало бы из цикла в другом случае. Тем не менее, у вас есть оператор return 0;
после цикла. Поскольку выполнение никогда не выпрыгивает из цикла, оно никогда не достигнет оператора return.
Компилятор предупреждает вас, что строка не влияет на поведение программы, так как выполнение никогда не может достичь ее. Вы можете избавиться от предупреждения, изменив логику своей программы таким образом, чтобы потенциально выскочить из цикла. Я предлагаю следующее:
if(ch==2)
break;
else
function();
Компилятор не показывает предупреждение, когда я комментирую / удаляю return 0; утверждение в main (). Почему это так?
Это утверждение было "недостижимым кодом", на которое ссылалось предупреждение. Если нет недоступного кода, нет необходимости предупреждать об этом.
Безопасно удалить линию. main
отличается тем, что неявно возвращает 0 при отсутствии оператора возврата (если выполнение когда-либо возвращается из main
, чего никогда не делает ваша программа).