Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать книгу онлайн бесплатно, автор Стивен Прата
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Перечисления

Язык C++ строже С в отношении применения перечислений. В частности, практически единственное, что можно делать с переменной enum — это присваивать ей константу enum и сравнивать ее с другими значениями. Нельзя присваивать значения int nеременной enum без явного приведения типа, равно как не допускается инкрементировать переменную enum. Следующий код иллюстрирует эти утверждения:

enum sample {sage, thyme, salt, pepper}; enum sample season;

season = sage; /* допустимо в С, C++ */

season = 2; /* предупреждение в С, ошибка в C++ */

season = (enum sample) 3; /* допустимо в С, C++ */

season++; /* допустимо в С, ошибка в C++ */

Справочные материалы 915

Кроме того, C++ позволяет не указывать ключевое слово enum при объявлении переменной:

enum sample {sage, thyme, salt, pepper};

sample season; /* недопустимо в С, допустимо в C++ */

Как в случае со структурами и объединениями, это может привести к конфликтам, если имена переменной и типа enum совпадают.

Указатель на void

В языке C++, как и в С, указателю на void можно присвоить указатель любого типа, но в отличие от С, указатель на void нельзя присваивать указателю другого типа без явного приведения. Сказанное демонстрируется в следующем коде:

int ar[5] = {4, 5, 6,7, 8}; int * pi; void * pv;

pv = ar; /* допустимо в С, C++ */

pi = pv; /* допустимо в С, недопустимо в C++ */

pi = (int * ) pv; /* допустимо в С, C++ */

Еще одно отличие C++ заключается в том, что вы можете присваивать адрес объ

екта производного класса указателю на базовый класс, но это относится к возможностям, которые в С отсутствуют.

Булевские типы

В языке C++ булевский тип называется bool, a true и false являются ключевыми словами. В языке С булевский тип имеет название Bool, но включение заголовочного файла stdbool.h делает доступными bool, true и false.

Альтернативное написание

В C++ альтернативное написание or для || и прочих операций обеспечивается ключевыми словами. В С99 и С11 альтернативные написания определены в виде макросов, и для того, чтобы сделать их доступными, необходимо включить заголовочный файл iso64 6.li.

Поддержка широких символов

В C++ тип wchar t является встроенным, a wchar t — ключевым словом. В С99 и C11 тип wchar t определен в нескольких заголовочных файлах (stddef.h, stdlib.h, wchar.h, wctype.h). Подобным же образом, charl6_t и char32_t — это ключевые слова в С++11, но макросы, определенные в uchar.li, в СИ.

Язык C++ предоставляет поддержку ввода-вывода широких символов (wchar t, charl6_t и char32_t) через заголовочный файл iostream, тогда как С99 предлагает совершенно другой пакет поддержки ввода-вывода, доступный через заголовочный файл wchar.h.

Комплексные типы

Язык C++ поддерживает комплексные типы посредством класса complex, предоставляемого с помощью заголовочного файла complex. Язык С имеет встроенные комплексные типы и поддерживает их через заголовочный файл complex.h. Эти два подхода существенно отличаются и несовместимы друг с другом. Версия С в большей степени отражает практические потребности вычислительного сообщества.

916 Приложение Б

Встраиваемые функции

В стандарте С99 была добавлена поддержка встраиваемых функций — средства, которое давно существовало в языке C++. Однако их реализация в С99 является более гибкой. В C++ встраиваемая функция по умолчанию имеет внутреннее связывание. Если встраиваемая функция C++ появляется в более чем одном файле, то она должна иметь одно и то же определение, используя те же самые лексемы. Например, один файл не может иметь определение с параметром типа int, а другой — определение с параметром типа int32_t, несмотря на то, что int32_t — это typedef для int. Гем не менее, в С такая организация разрешена. Кроме того, как было описано в главе 15, язык С позволяет смешивать встраиваемые и внешние определения, что в C++ не допускается.

Средства С99/С11, которых нет в С++11

Хотя традиционно считается, что язык С в большей или меньшей степени является подмножеством C++, в стандарте С99 появились некоторые средства, отсутствующие в C++. Ниже перечислены наиболее заметные из них:

• назначенные инициализаторы;

• составные инициализаторы;

• ограниченные указатели;

• массивы переменной длины;

• гибкие элементы массивов;

• макросы с переменным количеством аргументов.

На заметку!

Приведенный список — это просто моментальный снимок на конкретный момент, и перечни разделяемых и неразделяемых возможностей продолжат видоизменяться. Например, в

С++14 добавится средство, подобное массивам переменной длины С99.

В

Набор символов

ASCII

918 Приложение В

С

имволы сохраняются в памяти компьютеров с использованием числовых кодов.

В США наиболее часто применяется кодировка ASCII (American Standard Code for Information Interchange — американский стандартный код для обмена информацией). Язык С позволяет представить большинство одиночных символов напрямую путем заключения символа в одинарные кавычки, например, 'А' для символа A. Кроме того, одиночный символ можно представить с использованием его восьмеричного или шестнадцатеричного кода, перед которым должна находиться обратная косая черта, например, ‘\012 ' и '\0ха' соответствуют символу перевода строки (LF). Управляющие последовательности подобного рода также могут быть частью строки, скажем, такой: "Добро пожаловать, \012уважаемый".

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

Набор символов ASCII 919 920 Приложение В Набор символов ASCII 921 - фото 710

Набор символов ASCII 919

920 Приложение В Набор символов ASCII 921 - фото 711

920 Приложение В

Набор символов ASCII 921 Предметный указатель - фото 712

Набор символов ASCII 921

Предметный указатель Пред - фото 713

картинка 714 картинка 715

Предметный указатель

картинка 716 картинка 717

Предметный указатель 923

картинка 718 картинка 719

924 Предметный указатель

картинка 720 картинка 721

Предметный указатель 925

926 предметный указатель

картинка 722

Факториал, 344

Флаг, 261

Функция, 40; 326; 384 assert(), 704 atexit(), 698 calloc(), 514 exit(), 698 fclose(), 540 feof(), 553 ferror(), 553 fflush(), 550 fgetpos(), 548 fgets(), 432; 544 fopen(), 537 fprintf(), 542 fputs(), 432; 441; 544 fread(), 551; 553 free(), 513 fscanf(), 542 fseek(), 544 fsetpos(), 548 ftell(), 544

fwrite(), 551; 552; 553 getc(), 538 get_choice(), 318 gets(), 430; 432 gets_s(), 436 itobs(), 640 main(), 56 memcpyO, 707 memmove(), 707 mycompO, 702 printf(), 442 putc(), 538 puts(), 440 qsort(), 700; 702 rand0.c, 502 scanf(), 438 setvbuf(), 550 s_gets(), 437 sprintf(), 459 strcat(), 446 strcmpO, 449; 452; 454 strcpy(), 454; 456 strlen(), 445 strncat(), 447 strncpyO, 454; 458 ungetc(), 549 ввода-вывода, 129

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

Интервал:

Закладка:

Сделать


Стивен Прата читать все книги автора по порядку

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




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


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

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