C. Бочков - Язык программирования Си для персонального компьютера

Тут можно читать онлайн C. Бочков - Язык программирования Си для персонального компьютера - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство СП Диалог, Радио и связь, год 1990. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования Си для персонального компьютера
  • Автор:
  • Жанр:
  • Издательство:
    СП Диалог, Радио и связь
  • Год:
    1990
  • ISBN:
    5-256-00974-5
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

C. Бочков - Язык программирования Си для персонального компьютера краткое содержание

Язык программирования Си для персонального компьютера - описание и краткое содержание, автор C. Бочков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга содержит полное описание наиболее распространенных реализаций языка программирования Си на 16-разрядных микроЭВМ, совместимых с IBM PC. Приведено описание стандартных библиотек языка.

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

Язык программирования Си для персонального компьютера - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования Си для персонального компьютера - читать книгу онлайн бесплатно, автор C. Бочков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В примере 2 указан большой размер массива b, поскольку более вероятно, что программист будет модифицировать тип адреса объекта большой длины, который может не поместиться в текущий сегмент.

В примере 3, очевидно, скорость доступа к массиву ане является критичной; независимо от того, попадет он в стандартный сегмент или не попадет, обращение к нему всегда будет осуществляться по 32-битовому адресу. В примере 4 массиву bс помощью модификатора nearявно назначен стандартный сегмент, с целью ускорения доступа к нему в большой модели.

В примере 5 массив адолжен быть явно объявлен как huge, поскольку его размер превышает 64 Кбайта. Использование модификатора hugeвместо выбора максимальной модели памяти в качестве стандартной позволяет сэкономить время доступа: только к массиву аобращение будет осуществляться по адресу типа huge, а все остальные данные будут размещаться в стандартном сегменте. Для обращения к массиву аможет быть использован указатель раиз примера 6. Все арифметические операции над указателем ра(например, ра++) будут выполняться над всеми 32 его битами.

В примере 7 раобъявляется как указатель на near char. Указатель получает тип nearпо умолчанию, поскольку речь идет о малой модели. В примере 8 pbявно объявляется как указатель на far char. Он может быть использован, в частности, для доступа к символьному массиву, расположенному не в стандартном сегменте памяти. Например, раможет указывать на массив аиз примера 1, а pb— на массив bиз примера 2.

Хотя объявления рав примерах 9 и 10 идентичны, в примере 9 раобъявляется как указатель на nearмассив указателей на тип far char, а в примере 10 раобъявляется как указатель на farмассив указателей на тип far char.

В примере 11 pbобъявляется как указатель на nearмассив указателей на тип far char. В примере 12 pbобъявляется как указатель на farмассив указателей на тип far char. В этих примерах употребление слов farи nearизменяет действующие по умолчанию соглашения, связанные с моделями памяти; в отличие от примеров 9 и 10, объявления pbне зависят от выбранной модели памяти и в любой модели имеют одинаковый смысл.

Объявление функций

Правила применения модификаторов nearи farв объявлениях функций аналогичны правилам применения их в объявлениях данных. Если непосредственно за модификатором следует имя функции, то данное ключевое слово определяет, в каком сегменте будет размещена функция. Например,

char far fun();

определяет funкак функцию, вызываемую по 32-битовому адресу и возвращающую тип char.

Если же непосредственно за специальным ключевым словом следует признак указателя (звездочка), то данное ключевое слово определяет тип адреса функций, которые могут вызываться через этот указатель. Например,

char (far *pfun)();

определяет pfunкак указатель (32-битовый) на farфункцию, возвращающую char.

Модификатор hugeк функциям и указателям на функции неприменим.

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

Примеры:

char far fun(); /* пример 1: малая модель */

static char far *near fun(); /* пример 2: большая модель */

void far fun(); /* пример 3: малая модель */

void (far *pfun)() = fun;

double far * far fun(); /* пример 4: компактная модель */

double far* (far *pfun)() = fun;

В первом примере funобъявляется как функция, возвращающая char. Ключевое слово farв объявлении означает, что funвызывается по 32-битовому адресу типа far.

Во втором примере funобъявляется как nearфункция класса памяти static, возвращающая указатель на far char. Такая функция в большой модели памяти может быть использована, например, как вспомогательная подпрограмма, которая вызывается часто, но только функциями из своего исходного файла. Поскольку все функции из одного исходного файла помещаются в один и тот же сегмент, они могут обращаться друг к другу по адресам типа near. Будет ошибкой, однако, передать адрес функции funв качестве аргумента другой функции, расположенной за пределами сегмента, в котором определена fun, поскольку из другого сегмента функция funне может быть вызвана.

В третьем примере pfunобъявляется как указатель на farфункцию, не возвращающую значения, а затем ему присваивается адрес функции fun. Фактически pfunможет быть использован для доступа к любой функции, имеющей тип адреса far. Следует понимать, что если функция, вызванная через указатель pfun, не была объявлена с модификатором far, или не получила тип farпо умолчанию, то ее вызов приведет к ошибке во время выполнения.

В примере 4 pfunобъявляется как указатель на farфункцию, возвращающую указатель на far double, после чего ему присваивается адрес функции fun. Такой вариант может использоваться, например, в компактной модели памяти для функции, которая используется редко, и потому необязательно должна находиться в стандартном сегменте кода. И функция, и указатель должны быть объявлены с модификатором far.

Модели памяти СП ТС

Организация работы с моделями памяти в СП ТС имеет ряд отличий от СП MSC.

В дополнение к описанным выше моделям СП ТС имеет еще одну — tiny(минимальную). В этой модели вся программа — код, данные, стек, динамическая память — размещается в одном сегменте. Таким образом, размер программы ограничен 64 Кбайтами. Все указатели в этой модели имеют тип near. Программы модели памяти tinyмогут быть преобразованы в формат выполняемых файлов СОМ операционной системы MSDOS.

В компактной и большой моделях статические данные занимают не несколько сегментов, а один. В этом сегменте также размещается стек. По умолчанию для данных используются указатели типа far, однако для статических данных лучше применять указатели типа near. В компактной, большой и максимальной моделях стек занимает отдельный сегмент.

Только в максимальной модели памяти СП ТС позволяет статическим данным занимать более одного сегмента, т. е. более 64 Кбайтов. Однако в одном исходном файле может быть не более 64 Кбайтов статических данных. Вследствие этого недопустимы массивы, превышающие по размеру 64 Кбайта.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


C. Бочков читать все книги автора по порядку

C. Бочков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования Си для персонального компьютера отзывы


Отзывы читателей о книге Язык программирования Си для персонального компьютера, автор: C. Бочков. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x