Стандартные идетификаторы

Стандартные идентификаторы – используемые в программе предопределенные имена стандартных информационных объектов (например, обозначения стандартных функций и директив препроцессора), могут использоваться и в качестве идентификаторов пользователя (sin, cos, printf, …).

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

 

Идентификатор пользователя

 – используемая программистом для обозначения информационных объектов программы последовательность:

· прописных или строчных букв латинского алфавита (в последних версиях компиляторов допускаются и символы кириллицы); хороший стиль предполагает запись идентификаторов переменных строчными буквами;

· цифр и символов подчеркивания;

· начинающаяся с буквы или символа подчеркивания (хотя не рекомендуется начинать идентификаторы с символа подчеркивания, так как они используются в системных программах и библиотеках);

· зависящая от регистра клавиатуры (различаются прописные и строчные буквы, поэтому имена Summa и summa обозначают разные переменные);

· имеющая произвольную длину;

· представляющая собой мнемоническое (смысловое) имя (идентификаторы, не имеющие смысловой нагрузки, затрудняют чтение и понимание программы).

Для обозначения информационных объектов программы (или как первые символы их идентификаторов) желательно использовать:

  • буквы i, j, k, l, m, n для обозначения целых значений;
  • буквы f, d - для обозначения вещественных значений;
  • букву s – для строк;
  • букву р – для указателей.

В многословных идентификаторах для наглядности отдельные слова отделяют друг от друга символом подчеркивания (например, my_var).

В качестве идентификаторов пользователя нельзя использовать ключевые слова и зарезервированные идентификаторы и можно ( но не надо ) использовать стандартные идентификаторы.

 

Длина идентификатора зависит от компилятора. Большинство компиляторов различает идентификаторы по первым 32 символам.Для большинства препроцессоров уникальны обозначения, различающиеся в первых 6 символах. Использование длинных обозначений и имен идентификаторов может вызвать проблемы переносимости для некоторых компиляторов. Для того чтобы избежать этих проблем, программа должна хранить такими короткими, какими только можно, имена для препроцессора, локальные и внешние имена.

 

Константы

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

· литералы,

· именованные константы,

· препроцессорные константы,

· константы перечислений.

 

Литералы

Литерал  неименованная константа синтаксически правильная конструкция, представляющая фиксированное значение определенного типа, записываемое непосредственно в тексте программы. Тип константы определяется по записи ее литерала.

В качестве литералов в С++ могут использоваться:

§   целые константы:

o десятичные                               33    44   -52    8  -461 0 2010      

o восьмеричные                               0737 0152     -0121

o шестнадцатеричные                     0X2F56 0x15c -0x2а13b 0X7d83

§ вещественные константы                    0. 25 0. 25f       -56. 12е-12

§ логические константы                            true            false

§ символьные ( литерные ) константы                ‘K’ ‘z’ ‘2’

§ строковые константы                “the first number” “1234”

§ неопределенный указатель                   NULL

Целые константы

Целые константы записываются в виде десятичных (decimal), восьмеричных (octal) и 16-ричных (hexadecimal) целых чисел. Запись восьмеричного литерала начинается с цифры 0, а запись 16-ричного литерала начинается символами 0x(или 0Х).Буквы от A(a) до F(f) используются для записи значений от 10 до 15 в шестнадцатеричной системе счисления. Появление в записи восьмеричной константы недопустимой цифры 8 или 9 воспринимается как ошибка. Например, выполнение операторов:

int a= 0 8;

cout << a << endl;

дает ошибку компиляции illegal digit '8' for base '8'

Выполнение операторов:

int a= 0 10;

cout << a << endl;  

дает в качестве результата значение 8.

 

Выполнение операторов:

int a= 0x10;

cout << a << endl;

дает в качестве результата значение 16.

Выполнение операторов:

int b= 0xa;

cout << b << endl;

дает в качестве результата значение 10.

 

Целые литералы могут быть:

  • длинными целыми (определяются суффиксом – буквой l или L – тип long, стоящей после константы, и занимают 4 байта). Например: 12L, -1234567890L, 1234567890l – длинная целая десятичная константа; 0525L – длинная целая восьмеричная константа; 0ХABCL – длинная целая шестнадцатеричная константа.
  • б еззнаковыми целыми (явно определяются суффиксом – буквой u или U – тип unsigned, стоящей после константы, и занимают 4 байта). Например: 12U, 1245U или 1245u – беззнаковая целая десятичная константа; 525UL (или 525 LU, разрешается комбинировать оба суффикса в любом порядке) – беззнаковая длинная целая десятичная константа.

Константы в С++ изображаются без знака. Отрицательные константы получаются применением операции «унарный минус» к соответствующей положительной константе.

Вещественные константы

Литералы с плавающей точкой (вещественные константы) представляются числами с фиксированной или с плавающей точкой двойной точности (т.е. имеющими тип double – двойная точность), всегда в десятичной системе счисления. Для них возможно задание типа-суффикса: F или f – тип float – одинарная точность; L или l – тип long double – повышенная точность. При отсутствии суффикса подразумевается тип double.

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

Компилятор распознает вещественные константы по внешним признакам. Литералы с плавающей точкой могут включать:

целую часть – последовательность цифр;

десятичную точку;

дробную часть – последовательность цифр;

символ экспоненты e или E;

экспоненту в виде целой константы (может быть со знаком).

[(целая часть)]. [ (дробная часть) ] [e или E ± целая константа] [l или L или f или F]

 

Символы [ ]  обозначают, что компонент может отсутствовать. Любая часть из нижеследующих пар (но не обе сразу) может быть пропущена: целая или дробная; десятичная точка или символ е (Е) и экспонента в виде целой константы.

Например:

456. 73f              23. 678 5F                          // 4 байта (тип float)

456. 73               23. 678 5                                         // 8 байтов (тип double по умолчанию)

15. 75                              . 75                                 // 8 байтов (тип double по умолчанию)

1. 575Е1         . 0075е2                         //15.75 0.75

1575е-2          -. 125                                        //15.75 -0.125

-0. 0025           -. 175Е-2                    //-0.0025 -0.00175

-2. 5е-3              25е-4                                      //-0.0025 -0.0025

1298760. 0 -0. 5437634Е-6 0. 1е9                            //1298760. 0 -0 .000000 5437634 0. 100000000                                                                                                     

12345678967. 54675l    12345463754. 9L         // (тип long double)

12345f   

 

Предельные значения констант разных типов доступны в программах с помощью стандартизованных препроцессорных констант заголовков <сlimits> или <limits.h>, <сfloat> или <float.h>  (Таблицы 1.3, 1.4).                                                                      

 

Таблица 1.3 Константы предельных значений диапазонов типов

<сlimits> или <limits.h>  CHAR_MIN         CHAR_MAX           UCHAR_MAX                                  SHRT_MIN         SHRT_MAX            USHRT_MAX INT_MIN             INT_MAX               UINT_MAX <сfloat> или <float.h> FLT_MIN             FLT_MAX                  DBL_MIN             DBL_MAX             LDBL_MIN               LDBL_MAX              -128                   127                          255 -32768                32767                       65535 -2 147 483 648    2 147 483 647          4 294 967 295 1.17549e-038       3.40282e+038          2.22507e-308       1.79769e+308           2.22507e-308       1.79769e+308          

 

Таблица 1.4  Константы для вещественных типов

<сfloat> или <float.h>       

FLT_RADIX  Основание экспоненциального представления (2, 16)
FLT_DIG  Количество верных десятичных цифр для типа float
FLT_EPSILON Минимальное х такое, что 1.0+х ≠1.0? где х принадлежит типу float
FLT_MAX_EXP Максимальное n такое, что (FLT_RADIXn  -1)представимо в виде числа float
FLT_MAX_10_EXP Максимальное n такое, что 10n   представимо как float
FLT_MIN_EXP Минимальное n такое, что 10n   представимо в виде нормализованного числа типа  float
FLT_MIN_10_EXP Минимальное отрицательное целое n такое, что 10n  -в области определения чисел типа float
DBL_DIG  Количество верных десятичных цифр для типа double
DBL_EPSILON Минимальное х такое, что 1.0+х ≠1.0, где х принадлежит типу double
DBL_MAX_EXP            Максимальное n такое, что (FLT_RADIXn  -1)представимо в виде числа double
DBL_MAX_10_EXP Максимальное n такое, что 10n   представимо как double
DBL_MIN_EXP Минимальное n такое, что 10n   представимо в виде нормализованного числа типа  double
DBL_MIN_10_EXP Минимальное отрицательное целое n такое, что 10n  -в области определения чисел типа double

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: