Бьерн Страуструп. Язык программирования С++ Второе дополненное издание



Pdf көрінісі
бет50/256
Дата11.07.2022
өлшемі2,87 Mb.
#37591
1   ...   46   47   48   49   50   51   52   53   ...   256
Байланысты:
Бьерн Страуструп. Язык программирования С . М Бином, 2011

2.2 ИМЕНА 
Имя (идентификатор) является последовательностью букв или цифр. Первый символ должен быть 
буквой. Буквой считается и символ подчеркивания _. Язык С++ не ограничивает число символов в 
имени. Но в реализацию входят программные компоненты, которыми создатель транслятора управлять 
не может (например, загрузчик), а они, к сожалению, могут устанавливать ограничения. Кроме того, 
некоторые системные программы, необходимые для выполнения программы на С++, могут расширять 
или сужать множество символов, допустимых в идентификаторе. Расширения (например, 
использование $ в имени) могут нарушить переносимость программы. Нельзя использовать в качестве 
имен служебные слова С++ (см. $$R.2.4), например: 
hello this_is_a_most_unusially_long_name 
DEFINED foO bAr u_name HorseSense 
var0 var1 CLASS _class ___ 
Теперь приведем примеры последовательностей символов, которые не могут использоваться как 
идентификаторы: 
012 a fool $sys class 3var 
pay.due foo~bar .name if 
Заглавные и строчные буквы считаются различными, поэтому Count и count - разные имена. Но 
выбирать имена, почти не отличающиеся друг от друга, неразумно. Все имена, начинающиеся с 
символа подчеркивания, резервируются для использования в самой реализации или в тех программах, 
которые выполняются совместно с рабочей, поэтому крайне легкомысленно вставлять такие имена в 
свою программу. При разборе программы транслятор всегда стремится выбрать самую длинную 
последовательность символов, образующих имя, поэтому var10 - это имя, а не идущие подряд имя var и 
число 10. По той же причине elseif - одно имя (служебное), а не два служебных имени else и if. 
2.3 ТИПЫ 
С каждым именем (идентификатором) в программе связан тип. Он задает те операции, которые могут 
применяться к имени (т.е. к объекту, который обозначает имя), а также интерпретацию этих операций. 
Приведем примеры: 
int error_number; 
float real(complex* p); 
Поскольку переменная error_number описана как int (целое), ей можно присваивать, а также можно 
использовать ее значения в арифметических выражениях. Функцию real можно вызывать с параметром


Бьерн Страуструп.
Язык программирования С++ 
 
50 
содержащим адрес complex. Можно получать адреса и переменной, и функции. Некоторые имена, как в 
нашем примере int и complex, являются именами типов. Обычно имя типа нужно, чтобы задать в 
описании типа некоторое другое имя. Кроме того, имя типа может использоваться в качестве операнда 
в операциях sizeof (с ее помощью определяют размер памяти, необходимый для объектов этого типа) и 
new (с ее помощью можно разместить в свободной памяти объект этого типа). Например: 
int main() 

int* p = new int; 
cout << "sizeof(int) = " << sizeof(int) '\n'; 

Еще имя типа может использоваться в операции явного преобразования одного типа к другому 
($$3.2.5), например: 
float f; 
char* p; 
//... 
long ll = long(p); 
// 
преобразует p в long 
int i = int(f); 
// 
преобразует f в int 


Достарыңызбен бөлісу:
1   ...   46   47   48   49   50   51   52   53   ...   256




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет