`
Читать книги » Книги » Компьютеры и Интернет » Программирование » Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное

Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное

1 ... 68 69 70 71 72 ... 81 ВПЕРЕД
Перейти на страницу:

    ИЛИ-выражение

    логическое-И-выражение && ИЛИ-выражение

ИЛИ-выражение:

    исключающее-ИЛИ-выражение

    ИЛИ-выражение | исключающее-ИЛИ-выражение

исключающее-ИЛИ-выражение:

    И-выражение

    исключающее-ИЛИ-выражение ^ И-выражение

И-выражение:

    выражение-равенства

    И-выражение & выражение-равенства

выражение-равенства:

    выражение-отношения

    выражение-равенства == выражение-отношения

    выражение-равенства != выражение-отношения

выражение-отношения:

    сдвиговое-выражение

    выражение-отношения < сдвиговое-выражение

    выражение-отношения > сдвиговое-выражение

    выражение-отношения <= сдвиговое-выражение

    выражение-отношения >= сдвиговое-выражение

сдвиговое-выражение:

    аддитивное-выражение

    сдвиговое-выражение >> аддитивное-выражение

    сдвиговое-выражение << аддитивное-выражение

аддитивное-выражение:

    мультипликативное-выражение

    аддитивное-выражение + мультипликативное-выражение

    аддитивное-выражение - мультипликативное-выражение

мультипликативное-выражение:

    выражение-приведенное-к-типу

    мультипликативное-выражение * выражение-приведенное-к-типу

    мультипликативное-выражение / выражение-приведенное-к-типу

    мультипликативное-выражение % выражение-приведенное-к-типу

выражение-приведенное-к-типу:

    унарное-выражение

    ( имя-типа ) выражение-приведенное-к-типу

унарное-выражение:

    постфиксное –выражение

    ++ унарное-выражение

    -- унарное-выражение

    унарный-оператор выражение-приведенное-к-типу

    sizeof унарное-выражение

    sizeof( имя-типа )

унарный-оператор: один из

    &   *   +   -   ~   !

постфиксное-выражение:

    первичное-выражение

    постфиксное-выражение [ выражение ]

    постфиксное-выражение ( список-аргументов-выраженийнеоб )

    постфиксное-выражение , идентификатор

    постфиксное-выражение -> идентификатор

    постфиксное-выражение ++

    постфиксное-выражение --

первичное -выражение:

    идентификатор

    константа

    строка

    ( выражение )

список-аргументов-выражений:

    выражение-присваивания

    список-аргументов-выражений , выражение-присваивания

константа:

    целая-константа

    символьная-константа

    константа-с-плавающей-точкой

    константа-перечисление

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

управляющая-строка:

    #define идентификатор последовательность-лексем

    #define идентификатор ( идентификатор, ..., идентификатор) последовательность-лексем

    #undef идентификатор

    #include <имя-файла>

    #include "имя-файла"

    #include последовательность-лексем

    #line константа "идентификатор"

    #line константа

    #error последовательность-лексемнеоб

    #pragma последовательность-лексемнеоб

    #

    условная-конструкция-препроцессора

условная-конструкция-препроцессора:

    if-строка текст elif-части else-частьнеоб #endif

if-строка:

    #if константное-выражение

    #ifdef идентификатор

    #ifndef идентификатор

elif-части:

    elif-строка текст

    elif-частинеоб

elif-строка:

    #elif константное-выражение

else-часть:

    else-строка текст

else-строка:

    #else

Приложение B. Стандартная библиотека

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

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

<assert.h>

<ctype.h>

<errno.h>

<float.h>

<limits.h>

<locale.h>

<math.h>

<setjmp.h>

<signal.h>

<stdarg.h>

<stddef.h>

<stdio.h>

<stdlib.h>

<string.h>

<time.h>

Доступ к заголовочному файлу осуществляется с помощью строки препроцессора

#include <заголовочный файл>

Заголовочные файлы можно включать в любом порядке и сколько угодно раз. Строка #include не должна быть внутри внешнего объявления или определения и должна встретиться раньше, чем что-нибудь из включаемого заголовочного файла будет востребовано. В конкретной реализации заголовочный файл может и не быть исходным файлом.

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

B1. Ввод-вывод: ‹stdio.h› 

Определенные в <stdio.h> функции ввода-вывода, а также типы и макросы составляют приблизительно одну треть библиотеки.

Поток - это источник или получатель данных; его можно связать с диском или с каким-то другим внешним устройством. Библиотека поддерживает два вида потоков: текстовый и бинарный, хотя на некоторых системах, в частности в UNIXe, они не различаются. Текстовый поток - это последовательность строк; каждая строка имеет нуль или более символов и заканчивается символом 'n'. Операционная среда может потребовать коррекции текстового потока (например, перевода 'n' в символы возврат-каретки и перевод-строки).

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

1 ... 68 69 70 71 72 ... 81 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)