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. Бочков
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Затем препроцессор продолжает поиск в директориях, указанных в командной строке компиляции, и, наконец, ищет в стандартных директориях.

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

Примеры:

#include /* пример 1 */

#include "defs.h" /* пример 2 */

В первом примере в исходный файл включается файл с именем stdio.h. Угловые скобки сообщают препроцессору, что поиск файла нужно осуществлять в директории, указанной в командной строке компиляции, а затем в стандартных директориях.

Во втором примере в исходный файл включается файл с именем defs.h. Двойные кавычки означают, что при поиске файла сначала должна быть просмотрена директория, содержащая текущий исходный файл.

В СП ТС имеется возможность задавать имя пути в директиве #includeс помощью именованной константы. Если за словом includeследует идентификатор, препроцессор проверяет, не именует ли он константу или макроопределение. Если же за словом includeследует строка, заключенная в кавычки или в угловые скобки, СП ТС не будет искать в ней имя константы.

Примеры:

#define myinclude "c:\tc\include\mystuff.h"

#include myinclude

#include "myinclude.h"

Первая директива #includeзаставит препроцессор просматривать директорию C:\TC\INCLUDE\MYSTUFF.H, а вторая заставит искать файл MYINCLUDE.H в текущей директории.

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

Условная компиляция

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

Директивы #if, #elif, #else, #endif

Синтаксис:

#if < ограниченное-константное-выражение > [< текст >]

[#elif < ограниченное-константное-выражение > < текст >]

[#elif < ограниченное-константное-выражение >< текст >]

[#else < текст >]

#endif

Директива #ifсовместно с директивами #elif, #elseи #endifуправляет компиляцией частей исходного файла. Каждой директиве #ifв том же исходном файле должна соответствовать завершающая ее директива #endif. Между директивами #ifи #endifдопускается произвольное количество директив #elif(в том числе ни одной) и не более одной директивы #else. Если директива #elseприсутствует, то между ней и директивой #endifна данном уровне вложенности не должно быть других директив #elif.

Препроцессор выбирает один из участков < текста > для обработки. < Текст > может занимать более одной строки. Обычно это участок программного текста, однако это не обязательно: препроцессор можно использовать для обработки произвольного текста. Если < текст > содержит директивы препроцессора (в том числе и директивы условной компиляции), то эти директивы выполняются. Обработанный препроцессором текст передается на компиляцию.

Участок текста, не выбранный препроцессором, игнорируется на стадии препроцессорной обработки и не компилируется.

Препроцессор выбирает участок текста для обработки на основе вычисления < ограниченного-константного-выражения >, следующего за каждой директивой #ifили #elif. Выбирается < текст >, следующий за < ограниченным-константным-выражением > со значением истина (не нуль), вплоть до ближайшей директивы #elif, #else, или #endif, ассоциированной с данной директивой #if.

Если ни одно ограниченное константное выражение не истинно, то препроцессор выбирает < текст >, следующий за директивой #else. Если же директива #elseотсутствует, то никакой текст не выбирается.

Ограниченное константное выражение описано в разделе 4.2.9 "Константные выражения". Такое выражение не может содержать операцию sizeof(в СП ТС — может), операцию приведения типа, константы перечисления и плавающие константы, но может содержать препроцессорную операцию defined(< идентификатор >). Эта операция дает истинное (не равное нулю) значение, если заданный < идентификатор > в данный момент определен; в противном случае выражение ложно (равно нулю). Следует помнить, что идентификатор, определенный без значения, тем не менее рассматривается как определенный. Операция definedможет использоваться в сложном выражении в директиве #ifнеоднократно:

#if defined(mysym) || defined(yoursym)

СП TC (в отличие от СП MSC) позволяет использовать операцию sizeofв ограниченном константном выражении для препроцессора. В следующем примере в зависимости от размера указателя определяется одна из констант — либо SDATA, либо LDATA:

#if (sizeof(void *) == 2)

#define SDATA

#else

#define LDATA

#endif

Директивы #ifмогут быть вложенными. При этом каждая из директив #else, #elif, #endifассоциируется с ближайшей предшествующей директивой #if.

Примеры:

/* пример 1 */

#if defined(CREDIT)

credit();

#elif defined (DEBIT)

debit();

#else

printerror();

#endif

/* пример 2 */

#if DLEVEL >5

#define SIGNAL 1

#if STACKUSE == 1

#derine STACK 200

#else

#define STACK 100

#endif

#else

#define SIGNAL 0

#if STACKUSE == 1

#define STACK 100

#else

#define STACK 50

#endif

#endif

/* пример 3 */

#if DLEVEL == 0

#define STACK 0

#elif DLEVEL == 1

#define STACK 100

#elif DLEVEL > 5

display(debugptr);

#else

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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