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

Warning: return type defaults to 'int [-Wreturn-type]

Я пользователь Linux, который начал изучать C, и я пытаюсь скомпилировать этот источник, который я набрал:

#include <stdio.h>
main()
{
        float c,d;
        c = 10215.3;
        d = c / 3;
        printf("%3.2f\n",d);
        return 0;
}

Он скомпилирован с использованием файла makefile, который я написал:

cc -Wall -g     printf.c   -o printf

но я получаю это предупреждение:

printf.c: 2: 1: warning: тип возврата по умолчанию - 'int [-Wreturn-type]

он компилирует код, и я получаю желаемый результат, но я хочу понять, что это означает

4b9b3361

Ответ 1

main()

должен быть

int main()

В C89 тип возвращаемого по умолчанию считается int, поэтому он работает.

Ответ 2

В C89 возвращаемый по умолчанию тип int. Это значение по умолчанию было удалено на C99, а компиляторы полезно напоминать вам, что ваш C-стиль без int до main() устарел.

См. спецификацию C89. Раздел 3.5.2 "Спецификаторы типов":

  • "Каждый список спецификаторов типов должен быть одним из следующих наборов: [...] + int, подписан, подписанный int или нет спецификаторов типов.

  • И во втором абзаце семантики: "Каждый из наборов [...] обозначает тот же тип, за исключением того, что для бит-полей [blabla]". Таким образом, это означает, что "спецификаторы типов" не совпадают с int.

В C99 исключается спецификация типа "или no type". (Но вы все равно можете написать подписанный без int.)

Ответ 3

может кто-нибудь помочь мне с проектом плз? мы должны напечатать несколько букв (BKHALI) крупными символами.