Здесь я написал свое имя в объявлении основного аргумента, но все же эта программа работает и не выдает никаких предупреждений.
#include <stdio.h>
int main(Mr32)
{
printf("why this works?");
return 0;
}
Всякий раз, когда я пишу что-нибудь вместо mr32, код все еще работает.Я действительно не знаю, почему это происходит.В соответствии со стандартом программирования C это неправильно, верно?
Редактировать: Я пытался -Wall, но это не дает никакого предупреждения.
Я думаю, что здесь должна быть ошибка, потому что я не выполняю как стандартную функцию Cобъявление определения
В c каждое определение функции должно иметь следующий формат
return-type function_name ( arg_type arg1, ..., arg_type argN );
Это также должно относиться к main () right .. ??
Хорошо -Wextra показывает предупреждение, что mr32 по умолчанию является int.
Тогда почему тип по умолчанию любого аргумента в main () является int?