Инструкции

Справочный раздел

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

Разделы инструкций

В сети

Пользователей: 190
Из них просматривают:
Аналоги: 113. Даташиты: 18. Инструкции: 9. Новости: 4. Остальное: 1. Профиль пользователя: 2. Теги: 1. Форум: 42.
Участников: 2
Гостей: 188

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

Константы

Константа – это лексема языка, представляющая какое-либо фиксированное числовое или иное значение.

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

Целочисленные константы представляют собой запись чисел в одной из допустимых систем счисления: десятичной, двоичной (1), восьмеричной и шестнадцатеричной. Система счисления определяется компилятором следующим образом: если лексема, определенная как константа, начинается с символов «0b» – принимается, что это запись числа в двоичной системе; если лексема начинается с символов «0x» – принимается шестнадцатеричное представление числа. Восьмеричная система подразумевает, что число всегда начинается с нуля. Если же ни один из рассмотренных признаков не обнаружен – принимается десятичная система.

Вот пример записи константы (числа 307) в разных системах счисления:
 307 – десятичная запись
 0b100110011 – двоичная запись
 0463 – восьмеричная запись
 0x133 – шестнадцатеричная запись.
 
По значению константы компилятор определяет наименьший подходящий для нее тип данных. Однако часто необходимо задавать константы так, чтобы они заранее соответствовали конкретному типу, например, нужно определить константу long равную 2. Если просто написать 2, то компилятор посчитает, что для константы достаточно типа char, и будет его и использовать (далее будет показано, к чему это может привести). Чтобы принудительно указать размер константы, используются специальные суффиксы, приписываемые к константе справа:
 L – для обозначения long (можно и прописную букву «l» использовать)
 U – для обозначения unsigned (можно и прописную букву «u» использовать).
 
Суффиксы могут использоваться по отдельности или вместе в любых комбинациях. Таким образом, ранее упомянутая константа должна быть записана в виде 2L или 2ul.

Константы действительного типа определяются компилятором по наличию точки в записи лексемы или по наличию символа «e» (или «E»), отделяющего мантиссу (2)  от показателя степени числа 10.

Вот пример констант этого типа:
66.2  .1   0.    2.14e-7

Количество байтов, выделенное компилятором для хранения константы, в этом случае определяется формой представления чисел с плавающей точкой, т.е. может быть разным для разных компиляторов. При помощи служебного слова sizeof можно получить константу, равную количеству байтов для хранения константы:
 sizeof(3) будет равно 1 (1 байт);
 sizeof(3L) будет равно 4 (4 байта),
 и т.д.
 
Символьная константа – это разновидность целочисленной константы, служащей для определения кода алфавитно-цифрового символа. Для обозначения такой константы используется запись символа, окруженного апострофами:
′F′  ′5′  ′.′

Очевидно, что далеко не любой символ можно ввести таким образом. Снять проблему позволяет особый символ «обратная черта» (или back-slash): этот символ (называется escape-символ) позволяет ввести неотображаемые символы, символы «апостроф», «кавычки», «вопрос» и «обратная черта», а так же любой другой символ, указав его код.

Определение символа при помощи escape называется escape-последовательностью(3):

 

Escape-последовательностьКод символаНаименование символа
\a0x07Звуковой сигнал
\b0x08«Забой» (возврат на символ)
\f0x0cПеревод страницы
\n0x0aПеревод строки
\r0x0dВозврат каретки
\t0x09Горизонтальная табуляция
\v0x0bВертикальная табуляция
\\ 0x5cОбратная черта
\′0x27Апостроф
\”0x22Кавычки
\?0x3fЗнак вопроса
\000000Любой восьмеричный код символа
\0x000x00Любой шестнадцатеричный код символа

 
При вводе символов по их кодам в escape-последовательности следует помнить, что код не может быть больше 255 (в десятичном представлении).

 
Наконец, строковая константа – это последовательность символов, заключенная в кавычки. Среди символов строковой константы могут быть и escape-последовательности. Если введены подряд несколько строковых констант, разделенных лишь пробелами, табуляциями, переводами строки или комментариями – они объединяются в одну строковую константу. Длинные строки можно переносить со строки на строку при помощи символа переноса – той же самой «обратной черты».

Есть несколько особенностей слияния и переноса строк, связанных с обработкой пробелов:
 1. Если происходит слияние строк – результирующая строка будет содержать последовательно все символы обеих строк (это очевидно).
 2. Если строка переносится при помощи символа переноса, то в результирующую строку будет включены все пробелы от последнего символа до символа переноса и все пробелы от начала следующей строки до константы.
 
Вот примеры, поясняющие сказанное:

"простая строковая    константа"    
"слияние строк "        "123"
"перенос строки            \
123"        
"еще один вариант\    
                        переноса строки"
"вариант\        
переноса"

   
Компилятор преобразует эти константы в следующие:

"простая строковая константа"        
"слияние строк 123"        
"перенос строки                   123"    
"еще один вариант                    переноса строки"
"вариантпереноса" 

 
Важной особенностью строковых констант заключается в том, что компилятор всегда добавляет к явно введенным программистом символам еще один – символ завершения строки, код которого 0х00 (так называемый null-символ или завершающий ноль). Этот символ никак не виден в тексте программы, но обрабатывается компилятором и программой.    


 
 

Примечания:
  • Двоичные константы определены для GNU-расширений Си
  • Подразумевается, что читатель знаком с показательной формой записи действиетльных чисел.
  • Escape-последовательности ведут свое начало с тех времен, когда работа велась через консольные текстовые терминалы – эти последовательности управляли положением «курсора» на терминале или печатающем устройстве.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Из старых спиц от велосипеда или зонта, вплавленных паяльником в цилиндрические куски пластмассы, получаются удобные регулировочные отвертки.