Подтвердить что ты не робот

Почему предупреждение о том, что "управление достигает конца не-void функции" для основной функции?

Я запускаю следующие коды C и получил предупреждение: управление достигает конца не-void функции

int main(void) {}

Любые предложения?

4b9b3361

Ответ 1

Просто поместите return 0 в свой main(). Ваша функция main возвращает int (int main(void)), поэтому вы должны добавить возврат в конце.

Контроль достигает конца не-void функции

Problem: I received the following warning:

предупреждение: управление достигает конца не-void функции

Решение. Это предупреждение похоже на предупреждение, описанное в Return, без значения. Если управление достигает конца функции и не встречается возврат, GCC принимает возврат без возвращаемого значения. Однако для этого функция требует возвращаемого значения. В конце функции добавьте оператор return, который возвращает подходящее возвращаемое значение, даже если элемент управления никогда не доходит до него.

источник

Решение

int main(void)
{
    my_strcpy(strB, strA);
    puts(strB);
    return 0;
}

Ответ 2

В качестве альтернативы очевидному решению добавить оператор return в main(), вы можете использовать компилятор C99 ( "gcc -std = c99", если вы используете GCC).

В C99 для main() не имеет права иметь оператор return, а затем окончательный } неявно возвращает 0.

$ gcc -c -Wall t.c
t.c: In function ‘main’:
t.c:20: warning: control reaches end of non-void function
$ gcc -c -Wall -std=c99 t.c
$ 

Заметка, что пуристы считали бы важным: вы должны не исправить предупреждение, объявив main() как возвращающий тип void.

Ответ 3

Основная функция имеет возвращаемый тип int, как указано в

int main(void)

однако ваша основная функция ничего не возвращает, она закрывается после

puts(strB);

Добавить

return 0;

после этого и он будет работать.