Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
• Неопределенность. Смысл некоторых конструкций является неустановленным точно (unspecified), неопределенным (undefined) или не соответствующим стандарту, но не диагностируемым (not conforming but not requiring a diagnostic). Очевидно, что такие свойства лучше не использовать. В этой книге их нет. Перечислим неопределенные свойства, которых следует избегать.
• Несогласованные определения в разных исходных файлах (используйте заголовочные файлы согласованно; см. раздел 8.3).
• Повторное чтение и запись одной
• Многочисленные явные преобразования типов (приведения), особенно
A.1.2. Старт и завершение программы
В программе на языке С++ должна быть отдельная глобальная функция с именем
Аргументы функции
В определении функции
Если вы определили глобальный (в пространстве имен) объект, имеющий конструктор и деструктор, то вполне логично, чтобы конструктор выполнялся до функции
A.1.3. Комментарии
Все, что можно сказать в программе, должно быть сказано. Однако в языке C++ есть два стиля комментариев, позволяющие программистам сказать то, что невозможно выразить с помощью кода.
Очевидно, что блоки комментариев чаще всего оформляются как многострочные комментарии, хотя некоторые люди предпочитают разделять их на несколько однострочных.
Комментарии играют важную роль для документирования предназначения кода; см. также раздел 7.6.4.
A.2. Литералы
Литералы представляют значения разных типов. Например, литерал 12 представляет целое число двенадцать, литерал "
A.2.1. Целочисленные литералы
Целочисленные литералы (integer literals) имеют три разновидности.
• Десятичные: последовательности десятичных цифр.
Десятичные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9.
• Восьмеричные: последовательности восьмеричных цифр, начинающиеся с нуля.
Восьмеричные цифры: 0, 1, 2, 3, 4, 5, 6 и 7.
• Шестнадцатеричные: последовательности шестнадцатеричных цифр, начинающихся с 0x или 0X.
Шестнадцатеричные цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, A, B, C, D, E и F.
Суффикс u или U означает, что целочисленный литерал не имеет знака, т.е. имеет спецификатор unsigned (см. раздел 25.5.3), а суффикс l или L относит их к типу
A.2.1.1. Числовые системы
Обычно мы записываем числа в десятичной системе. Число
Впрочем, иногда используются и другие системы счисления. Как правило, положительные целые числа в памяти компьютера представляются в двоичной системе счисления, т.е. база счисления равна 2 (значения 0 и 1 относительно легко представить с помощью физических состояний). Люди, сталкивающиеся с необходимостью решать задачи на низком уровне аппаратного обеспечения, иногда используют восьмеричную систему счисления (база равна 8), а при адресации памяти чаще используется шестнадцатеричная система (база равна 16).