Неявный int

Неявный 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 */
}

Примечания



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Неявный int" в других словарях:

  • Конструктор копирования — Конструктором копирования (в англоязычной литературе используется термин copy constructor) называется специальный конструктор в языке программирования C++, применяемый для создания нового объекта как копии уже существующего. Такой конструктор… …   Википедия

  • Ragnarök Online — Разработчик GRAVITY Co., Ltd …   Википедия

  • Автоматное программирование — Автоматное программирование  это парадигма программирования, при использовании которой программа или её фрагмент осмысливается как модель какого либо формального автомата. В зависимости от конкретной задачи в автоматном программировании… …   Википедия

  • Абстрактный класс — в объектно ориентированном программировании базовый класс, который не предполагает создания экземпляров. Абстрактные классы реализуют на практике один из принципов ООП полиморфизм. Абстрактный класс может содержать (и не содержать[1]) абстрактные …   Википедия

  • Конструктор (программирование) — У этого термина существуют и другие значения, см. Конструктор. В объектно ориентированном программировании конструктор класса (от англ. constructor, иногда сокращают ctor)  специальный блок инструкций, вызываемый при создании объекта.… …   Википедия

  • Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му …   Википедия

  • Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г …   Википедия

  • Панические атаки — Паническая атака МКБ 10 F41.0 МКБ 9 300.01 DiseasesDB 30913 …   Википедия

  • Николс, Майк — (Nichols, Mike)    Настоящие имя и фамилия: Михаил Игорь Пешковский. Режиссер кино и театра, продюсер, актер. Родился 6 ноября 1931 г. в Берлине (Германия) в русскоеврейской семье. В 1939 г. вместе с родителями эмигрировал из нацистской Германии… …   Режиссерская энциклопедия. Кино США


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»