
Ідентифікатори
Ідентифікатор – це послідовність символів для позначення
- імен змінних або об’єктів;
- імен класів, структур та об’єднань;
- імен списків;
- членів класів, структур, об’єднань та списків;
- typedef імен;
- імен міток;
- імен макросів;
- макро-параметрів.
Ідентифікатори можуть складатися із одного або кількох символів. Наступні символи можуть бути використані як перший символ ідентифікатора:
a b c d e f g h i j k l m
n o p q r s t u v w x y z
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z _
Символи 0 1 2 3 4 5 6 7 8 9 можуть бути використані у довільній позиції ідентифікатора за винятком позиції першого символу.
Отже, ідентифікатори утворюють із символів латинського алфавіту верхнього та нижнього регістрів, цифр 0–9 та знака підкреслювання у довільній комбінації. Ідентифікатор не може починатися із символу цифри.
Ідентифікатори не можуть співпадати із ключовими словами.
Допустимі ідентифікатори, що включають у себе ключові слова.
Специфічно для Microsoft: довжина ідентифікатора може сягати 2048 символів. Знак долара “$” може бути використано для утворення ідентифікатора:
int main()
{
int $x=1;
return 0;
}
Ідентифікатори, які починаються з двох послідовних символів підкреслювання ( __ ) або одного символу підкреслювання, за яким йде літера верхнього регістру, зарезервовані для реалізацій C++ для усіх областей видимості.
Слід уникати глобальних імен, що складаються із одного символу підкреслювання та наступної літери нижнього регістру у зв’язку із можливими конфліктами поточних та майбутніх зарезервованих ідентифікаторів.
Змінні
Змінна – поіменована або така, що адресується іншим чином, комірка пам’яті, ім’я або адресу котрої можна використовувати для доступу до даних, які зберігаються у змінній (за даною адресою).
Області (зони) імен
C++ імена можуть використовуватися тільки у визначених ділянках програми. Ці ділянки називають областями (зонами) імен. Область визначає “час життя” імені, що не вказує на статично розміщений об’єкт (глобальні об’єкти, локальні статичні об’єкти і статичні члени класу; для кожного із них створюється єдиний екземпляр даних у пам’яті). Область також визначає видимість імені.
Існують 5 типів областей (зон):
- локальна (Local scope): ім’я, оголошене усередині блоку, доступне тільки усередині цього блоку. Межі блоку визначають фігурні дужки {}:
{
int i;
}
- зона функцій (Function scope). До цієї зони належать тільки імена міток. Мітки не доступні поза межами функцій, у яких вони оголошені;
- зона файлу (File scope). Довільний ідентифікатор, оголошений поза межами усіх блоків та класів, належить до зони файлу. Такі ідентифікатори називають глобальними. У C++ зону файла часто називають зоною простору імен;
- зона класу (Class scope ). Ідентифікатори членів класу належать до зони класу. Доступ до функцій-членів класу здійснюється тільки через оператор вибору (. або ->). Нестатичні члени класу розглядають як локальні щодо об’єкта класу.
class A
{
int x;
int y;
};
Поля x та y належать до зони класу A;
- зона прототипу: імена, оголошені у прототипі функції, доступні тільки у межах прототипу:
void func(char x, int k); .
Змінні x та k належать до зони прототипу.
Джерело: http://msdn.microsoft.com/en-us/library/b7kfh662(v=vs.80).aspx