Литералы
Прежде всего, данные могут присутствовать непосредственно в тексте программы. В этом случае они представляются в виде литеральных констант. Эти литералы могут быть числовыми, символьными и строковыми. В программе Hello World мы пользовались строковыми литералами. Это — последовательность символов, заключенная в двойные кавычки.
Символьный литерал служит для представления одиночного знака. Это символ, заключенный в одиночные кавычки (апострофы).
Числовые литералы могут быть вещественными (с плавающей точкой) и целыми. В случае целого литерала он может быть записан в десятичной, восьмеричной или шестнадцатеричной нотации (системе счисления). Вещественный литерал записывается либо в обычной десятичной, либо в экспоненциальной нотации.
В таблице 3.1 перечислены все упомянутые выше виды литеральных констант и даны соответствующие примеры.
Таблица 3.1. Литеральные константы
Литерал |
Описание |
Примеры |
|||
Символьный | Одиночный символ, заключенный в апострофы | 'W', '&', 'Ф' | |||
Строковый | Последовательность символов, заключенная в обычные (двойные) кавычки | "Это строка \n" | |||
Целый | Десятичный — последовательность цифр, не начинающаяся с нуля | 123, 1999 | |||
Восьмеричный — последовательность цифр от нуля до семерки, начинающаяся с нуля | 011, 0177 | ||||
Шестнадцатеричный — последовательность шестнадцатеричных цифр (0 - 9 и А - F), перед которой стоит 0X или Оx | ОХ9А, Oxffff | ||||
Вещественный | Десятичный — [цифры].[цифры] | 123., 3.14, .99 | |||
Экспоненциальный — [цифры]Е|е[+|-] цифры | Зе-10, 1.17е6 |

Можно дать литеральной константе некоторое имя, определив ее в качестве макроса препроцессора. После этого можно вместо литерала использовать имя. Это особенно удобно в том случае, когда одна и та же константа встречается в различных частях программы; используя имя вместо литералов, вы гарантированы от опечаток и, кроме того, гораздо проще вносить в код изменения, если значение константы нужно модифицировать. Макросы определяются директивой препроцессора #define:
#define PI 3.14159265
#define TRUE 1
#define FALSE 0

При обработке исходного кода препроцессором выполняется просто текстовая подстановка: каждое вхождение имени макроса заменяется соответствующим ему литералом. Макросы называют также символическими константами (не путайте с символьными).