Язык программирования C

       

Что в имени тебе моем?


Язык "C" основывает интерпретацию идентификатора на двух признаках идентификатора: его классе памяти и его типе. Класс памяти определяет место и время хранения памяти, связанной с идентификатором; тип определяет смысл величин, находящихся в памяти, определенной под идентификатором.

Имеются четыре класса памяти: автоматическая, статическая, внешняя и регистровая. Автоматические переменные являются локальными для каждого вызова блока и исчезают при выходе из этого блока. Статические переменные являются локальными, но сохраняют свои значения для следующего входа в блок даже после того, как управление передается за пределы блока. Внешние переменные существуют и сохраняют свои значения в течение выполнения всей программы и могут использоваться для связи между функциями, в том числе и между независимо скомпилированными функциями. Регистровые переменные хранятся (ели это возможно) в быстрых регистрах машины; подобно автоматическим переменным они являются локальными для каждого блока и исчезают при выходе из этого блока.

В языке "C" предусмотрено несколько основных типов объектов: объекты, написанные как символы (char), достаточно велики, чтобы хранить любой член из соответствующего данной реализации внутреннего набора символов, и если действительный символ из этого набора символов хранится в символьной переменной, то ее значение эквивалентно целому коду этого символа. В символьных переменных можно хранить и другие величины, но реализация будет машинно-зависимой.

Можно использовать до трех размеров целых, описываемых как short int, int и long int. Длинные целые занимают не меньше памяти, чем короткие, но в конкретной реализации может оказаться, что либо короткие целые, либо длинные целые, либо те и другие будут эквивалентны простым целым. "Простые" целые имеют естественный размер, предусматриваемый архитектурой используемой машины; другие размеры вводятся для удовлетворения специальных потребностей.

Целые без знака, описываемые как unsigned, подчиняются законам арифметики по модулю 2**n, где n - число битов в их представлении. (На PDP-11 длинные величины без знака не предусмотрены).

Плавающие одинарной точности (float) и плавающие двойной точности (double ) в некоторых реализациях могут быть синонимами.

Поскольку объекты упомянутых выше типов могут быть разумно интерпретированы как числа, эти типы будут называться арифметическими. типы char и int всех размеров совместно будут называться целочисленными. типы float и double совместно будут называться плавающими типами.

Кроме основных арифметических типов существует концептуально бесконечный класс производных типов, которые образуются из основных типов следующим образом:

  • массивы объектов большинства типов;
  • функции, которые возвращают объекты заданного типа;
  • указатели на объекты данного типа;
  • структуры, содержащие последовательность объектов
  • различных типов;
  • объединения, способные содержать один из нескольких
  • объектов различных типов.

Вообще говоря, эти методы построения объектов могут применяться рекурсивно.



Содержание раздела