Скачиваний:
71
Добавлен:
26.05.2014
Размер:
3.48 Кб
Скачать

Kernighan, B. W. and Ritchie, D. M. "The 'C' Programming Language"; Chapter 13 13. Что значит имя? Язык "C" основывает интерпретацию идентификатора на двух признаках идентификатора: его классе памяти и его типе. Класс памяти определяет место и время хранения памяти, связанной с идентификатором; тип определяет смысл величин, находящихся в памяти, определенной под идентификатором. Имеются четыре класса памяти: автоматическая, статическая, внешняя и регистровая. Автоматические переменные являются локальными для каждого вызова блока и исчезают при выходе из этого блока. Статические переменные являются локальными, но сохраняют свои значения для следующего входа в блок даже после того, как управление передается за пределы блока. Внешние переменные существуют и сохраняют свои значения в течение выполнения всей программы и могут использоваться для связи между функциями, в том числе и между независимо скомпилированными функциями. Регистровые переменные хранятся (если это возможно) в быстрых регистрах машины; подобно автоматическим переменным они являются локальными для каждого блока и исчезают при выходе из этого блока. В языке "C" предусмотрено несколько основных типов об'ектов: Об'екты, описанные как символы (char), достаточно велики, чтобы хранить любой член из соответствующего данной реализации внутреннего набора символов, и если действительный символ из этого набора символов хранится в символьной переменной, то ее значение эквивалентно целому коду этого символа. В символьных переменных можно хранить и другие величины, но реализация будет машинно-зависимой. Можно использовать до трех размеров целых, описываемых как short int, int и long int. Длинные целые занимают не меньше памяти, чем короткие, но в конкретной реализации может оказаться, что либо короткие целые, либо длинные целые, либо те и другие будут эквивалентны простым целым. "Простые" целые имеют естественный размер, предусматриваемый архитектурой используемой машины; другие размеры вводятся для удовлетворения специальных потребностей. Целые без знака, описываемые как unsigned, подчиняются законам арифметики по модулю 2**n, где n - число битов в их представлении. (На pdp-11 длинные величины без знака не предусмотрены). Плавающие одинарной точности (float) и плавающие двойной точности (double) в некоторых реализациях могут быть синонимами. Поскольку об'екты упомянутых выше типов могут быть разумно интерпретированы как числа, эти типы будут называться арифметическими. Типы char и int всех размеров совместно будут называться целочисленными. Типы float и double совместно будут называться плавающими типами. Кроме основных арифметических типов существует концептуально бесконечный класс производных типов, которые образуются из основных типов следующим образом: массивы об'ектов большинства типов; функции, которые возвращают об'екты заданного типа; указатели на об'екты данного типа; структуры, содержащие последовательность об'ектов различных типов; об'единения, способные содержать один из нескольких об'ектов различных типов. Вообще говоря, эти методы построения об'ектов могут применяться рекурсивно.

Соседние файлы в папке Язык программирования C - Брайен В. Керниган, Деннис М. Ричи