Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное
- Название:Язык программирования Си. Издание 3-е, исправленное
- Автор:
- Жанр:
- Издательство:Невский Диалект
- Год:2001
- Город:Санкт-Петербург
- ISBN:0-13-110362-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Брайан Керниган - Язык программирования Си. Издание 3-е, исправленное краткое содержание
Книга широко известных авторов, разработчиков языка Си, переработанная и дополненная с учетом стандарта ANSI для языка Си, 2-е английское издание которой вышло в 1988 году, давно стала классикой для всех изучающих и/или использующих как Си, так и Си++. Русский перевод этой книги впервые был выпущен изд- вом "Финансы и статистика" в 1992 г. и с тех пор пользуется неизменным спросом читателей.
Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания, размещенные автором на странице http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html.
Для программистов, преподавателей и студентов.
Издание подготовлено при участии издательства "Финансы и статистика"
Язык программирования Си. Издание 3-е, исправленное - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
логическое-ИЛИ-выражение :
логическое-И-выражение
логическое-ИЛИ-выражение || логическое-И-выражение
логическое-И-выражение :
ИЛИ-выражение
логическое-И-выражение && ИЛИ-выражение
ИЛИ-выражение :
исключающее-ИЛИ-выражение
ИЛИ-выражение | исключающее-ИЛИ-выражение
исключающее-ИЛИ-выражение :
И-выражение
исключающее-ИЛИ-выражение ^ И-выражение
И-выражение :
выражение-равенства
И-выражение & выражение-равенства
выражение-равенства :
выражение-отношения
выражение-равенства == выражение-отношения
выражение-равенства != выражение-отношения
выражение-отношения :
сдвиговое-выражение
выражение-отношения < сдвиговое-выражение
выражение-отношения > сдвиговое-выражение
выражение-отношения <= сдвиговое-выражение
выражение-отношения >= сдвиговое-выражение
сдвиговое-выражение :
аддитивное-выражение
сдвиговое-выражение >> аддитивное-выражение
сдвиговое-выражение << аддитивное-выражение
аддитивное-выражение :
мультипликативное-выражение
аддитивное-выражение + мультипликативное-выражение
аддитивное-выражение - мультипликативное-выражение
мультипликативное-выражение :
выражение-приведенное-к-типу
мультипликативное-выражение * выражение-приведенное-к-типу
мультипликативное-выражение / выражение-приведенное-к-типу
мультипликативное-выражение % выражение-приведенное-к-типу
выражение-приведенное-к-типу :
унарное-выражение
( имя-типа ) выражение-приведенное-к-типу
унарное-выражение :
постфиксное –выражение
++ унарное-выражение
-- унарное-выражение
унарный-оператор выражение-приведенное-к-типу
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-стандарта. Сама по себе библиотека не является частью языка, однако, заложенный в ней набор функций, а также определений типов и макросов составляет системную среду, поддерживающую стандарт Си. Мы не приводим здесь несколько функций с ограниченной областью применения – те, которые легко синтезируются из других функций, а также опускаем все то, что касается многобайтовых символов и специфики, обусловленной языком, национальными особенностями и культурой.
Функции, типы и макросы объявляются в следующих стандартных заголовочных файлах:
Доступ к заголовочному файлу осуществляется с помощью строки препроцессора
#include <���заголовочный файл>
Заголовочные файлы можно включать в любом порядке и сколько угодно раз. Строка #include не должна быть внутри внешнего объявления или определения и должна встретиться раньше, чем что-нибудь из включаемого заголовочного файла будет востребовано. В конкретной реализации заголовочный файл может и не быть исходным файлом.
Внешние идентификаторы, начинающиеся со знака подчеркивания, а также все другие идентификаторы, начинающиеся с двух знаков подчеркивания или с подчеркивания и заглавной буквы, зарезервированы для использования в библиотеке.
B1. Ввод-вывод: ‹stdio.h›
Определенные в функции ввода-вывода, а также типы и макросы составляют приблизительно одну треть библиотеки.
Поток - это источник или получатель данных; его можно связать с диском или с каким-то другим внешним устройством. Библиотека поддерживает два вида потоков: текстовый и бинарный , хотя на некоторых системах, в частности в UNIXe, они не различаются. Текстовый поток - это последовательность строк; каждая строка имеет нуль или более символов и заканчивается символом '\n'. Операционная среда может потребовать коррекции текстового потока (например, перевода '\n' в символы возврат-каретки и перевод-строки).
Читать дальшеИнтервал:
Закладка: