- Неявный int
-
«Неявный int» — сленговое обозначение правила языка программирования Си, согласно которому отсутствие спецификаторов типа в объявлении или имени типа означает тип
int
. Например:const i; /* OK: то же, что const int i; */
Правило неявного
int
применяется всюду, где требуется присутствие спецификаторов объявления, кроме случая указания квалификаторов типа в деклараторе указателя, поскольку в нём не допускаются спецификаторы типа. Например:typedef I; /* OK: то же, что typedef int I; */
Кроме того, к записи типа возвращаемого значения при определении функции правило неявного
int
применяется даже если все спецификаторы объявления при этом типе опущены. Например:*f() /* OK: то же, что int *f() { ... */ { return 0; }
В противном случае, хотя бы один из спецификаторов объявления должен присутствовать. Например:
*f(); /* ОШИБКА: нет спецификаторов объявления и это не определение функции */
Последнее требование имеет важное практическое значение: распространение правила неявного
int
на все случаи, которые можно было бы трактовать как опущенный набор спецификаторов объявления привело бы к многочисленным синтаксическим неоднозначностям. Например, в таком случае следующую запись дляg
int f() { g(); }
можно было бы трактовать и как объявление функции без прототипа:
int f() { int g(); }
и как объявление прототипа функции, принимающей единственный аргумент типа
int
:int f() { int g(int); }
и даже как вызов некоторой функции с таким именем:
int f() { g(); /* вызов функции g */ }
Примечания
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 14 мая 2011.Категория:- Язык программирования Си
Wikimedia Foundation. 2010.