Interested Article - Неявный int
- 2021-06-05
- 1
«
Неявный 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 */
}
Примечания
- 2021-06-05
- 1