Справочник по Visual С++
	
	Справочник по Visual С++
|Ключевые слова языка Visual C++                                             | 
|__аsm                 |dllimport2           |__int8          |naked2       | 
|__basedl              |__except             |__intl6         |__stdcall    | 
|__cdecl               |__fastcall           |__int32         |thread2      | 
|__declspec            |__finally            |__int64         |__try        | 
|__dllexport2          |__inline             |__leave         |             | 
|Auto                  |Double               |Int             |struct       | 
|Break                 |Else                 |Long            |switch       | 
|Case                  |Enum                 |Register        |typedef      | 
|Char                  |Extern               |Return          |union        | 
|Const                 |Float                |Short           |unsigned     | 
|Continue              |For                  |Signed          |void         | 
|Default               |Goto                 |Sizeof          |volatile     | 
|Do                    |If                   |Static          |while        | 
|Типы данных языка С++                                                       | 
|Вид переменной    |Ключевые слова    |Примечание                            | 
|Целые со знаком   |int               |Основной тип целых чисел              | 
|                  |long, long int    |Длинное целое – могут иметь целое как | 
|                  |                  |минимум такого же размера, как самое  | 
|                  |                  |большое int и, возмоно,больше         | 
|                  |                  |Короткое целое – могут иметь целое не | 
|                  |short, short int  |больше самого маленького int а,       | 
|                  |                  |возможно, и меньше.                   | 
|Целые без знака   |unsigned,         |Имеют только нулевые и положительные  | 
|                  |unsigned int      |значения. Они не могут быть больше    | 
|                  |                  |самого большого возможного            | 
|                  |                  |положительного числа. Числа таких     | 
|                  |                  |типов подчиняются законам арифметики  | 
|                  |                  |по модулю 2".                         | 
|                  |unsigned long,    |                                      | 
|                  |unsigned int long |                                      | 
|                  |unsigned short,   |                                      | 
|                  |unsigned int short|                                      | 
|Символы           |Char              |Это типографские знаки, такие как А,  | 
|                  |unsigned char     |$, 7 или %, а также специальные       | 
|                  |                  |Управляющие символы.                  | 
|Числа с плавающей |Float             |Числа с плавающей точкой обычной      | 
|точкой            |                  |точности.                             | 
|                  |double,           |Числа с плавающей точкой двойной      | 
|                  |long  float       |точности.                             | 
|Нестандартные типы данных, поддерживаемые Visual C++                        | 
|Тип данных          |Размер (в байтах)|Диапазон значений                   | 
|__int8              |1                |от-128 до 127                       | 
|__intl6             |2                |от –32768 до 32767                  | 
|__int32             |4                |от –2147483648 до 2147483647        | 
|__int64             |8                |Приблизительно +/-9Е 18             | 
|Целые константы                                                             | 
|Тип                 |Синтаксическое правило           |Пример               | 
|Десятичный          |Первая цифра 1-9, следующие цифры|77                   | 
|                    |0-9                              |-512                 | 
|                    |                                 |77385L               | 
|Шестнадцатеричный   |Начинается с 0x или 0X; следующие|0x4D                 | 
|                    |цифры 0-9, a-f или A-F           |-0Х200               | 
|                    |                                 |0x12e49              | 
|Восьмеричный        |Начинается с 0; следующие цифры  |0115                 | 
|                    |0-7                              |-01000               | 
|                    |                                 |017067 L             | 
|Операции над указателями                                                    | 
|Операция          |                                 Комментарии            | 
|ptr1= =ptr2       |Сравнение на "равенство"                                | 
| ptr1 != ptr2     |Сравнение на "неравенство"                              | 
|              Ptr1|Сравнение на "меньше"                                   | 
|< ptr2            |                                                        | 
|рtr1 ptr2            |                                                        | 
|ptr1>= ptr2       | Сравнение на "больше или равно"                        | 
|ptr1  -  ptr2     |Вычисление числа элементов массива между ptr1 и ptr2.   | 
|ptr1+ int_val     |Вычисление указателя, отстоящего от ptr1на              | 
|                  |int_val"вверх"                                          | 
|ptr1 - int_val    |Вычисление указателя, отстоящего от ptr1 на int_val     | 
|                  |"вниз"                                                  | 
|ptr1++ (++ptr1)   |Увеличение значения указателя на единицу                | 
|ptr1-- (--ptr1)   |Уменьшение значения указателя на единицу                | 
                                                     Арифметические операции 
|Операция |Описание                                                         | 
|+        |Прибавляет величину, находящуюся справа, к величине, стоящей     | 
|         |слева                                                            | 
|++       |Унарная операция сложения. Прибавляет 1 к значению переменной,   | 
|         |стоящей слева (постфиксная форма) или справа (префиксная форма)  | 
|--       |Унарная операция вычитания. Она аналогична операции ++, но       | 
|         |вычитает 1.Также имеет две формы                                 | 
|-        |Вычитает величину, находящуюся справа, из величины, указанной    | 
|         |слева                                                            | 
|-        |Унарный минус. Изменяет знак величины, стоящей справа            | 
|*        |Умножает величину справа на величину, находящуюся слева          | 
|/        |Делит величину, стоящую слева, на величину справа. Если оба      | 
|         |операнда целые числа, то результат усекается                     | 
|%        |Дает остаток от деления величины слева на величину, стоящую      | 
|         |справа, допустима только для целых чисел.                        | 
                                                          Операции отношения 
|Операция          |Описание          |Операция          |Описание          | 
|<                 |Меньше            |>=                |Больше или равно  | 
|                 |Больше            | 
|==                |Равно             |!=                |Не равно          | 
                                                         Логические операции 
|Операция      |Описание                                                     | 
|&&            |Логическое умножение (операция И). Результат равен "1" тогда | 
|              |и      только тогда, когда оба операнда отличны от нуля, и   | 
|              |"О" в противном случае.                                      | 
|||            |Логическое сложение (операция ИЛИ). Результат равен "1", если| 
|              |хотя            бы один из операндов отличен от нуля, и "О" в| 
|              |противном случае.                                            | 
|I             |Логическое отрицание (операция НЕ). Результат имеет значение | 
|              |"истина", если операнд имеет значение "ложь", и наоборот.    | 
                                                             Операции сдвига 
|Операция  |Описание                                                        | 
|>        |Сдвигает разряды левого операнда вправо на число позиций,       | 
|          |задаваемое правым операндом. Разряды, сдвигаемые за младший     | 
|          |разряд левого операнда, теряются. Для чисел типа unsigned       | 
|          |позиции, освобождающиеся слева, заполняются нулями. Для чисел со| 
|          |знаком заполнение зависит от реализации, а в Visual C++         | 
|          |заполнение осуществляется нулями                                | 
                                                       Операции присваивания 
|Операция  |Описание                                                        | 
|+=        |Прибавляет величину, находящуюся справа, к величине, стоящей    | 
|          |слева, и записывает результат в переменную, стоящую слева       | 
|-=        |Вычитает величину, находящуюся справа, из величины, указанной   | 
|          |слева, и записывает результат в переменную, стоящую слева       | 
|*=        |Умножает величину справа на величину, находящуюся слева, и      | 
|          |записывает результат в переменную, стоящую слева                | 
|/=        |Делит величину, стоящую слева, на величину справа, и записывает | 
|          |результат в переменную, стоящую слева, если оба операнда — целые| 
|          |числа, то результат усекается                                   | 
|%=        |Дает остаток от деления величины слева на величину, стоящую     | 
|          |справа, и записывает результат в переменную, стоящую слева.     | 
|          |Допустима только для целых чисел                                | 
|&=        |Выполняет поразрядную операцию И над величинами и записывает    | 
|          |результат в переменную, стоящую слева                           | 
||=        |Выполняет поразрядную операцию ИЛИ над величинами и записывает  | 
|          |результат в переменную, стоящую слева                           | 
|^=        |Выполняет поразрядную операцию, исключающее ИЛИ над величинами, | 
|          |и записывает результат в переменную, стоящую слева              | 
|>=       |Сдвигает разряды левого операнда вправо на число позиций,       | 
|          |задаваемое правым операндом, и записывает результат в           | 
|          |переменную, стоящую слева                                       | 
                                                    Операции над указателями 
|Операция                |Описание                |Пример                   | 
|&                       |Операция получения      |//присваиваем значение   | 
|                        |адреса— выдает адрес    |переменной nVariable =   | 
|                        |переменной, имя которой |77;                      | 
|                        |стоит за – обозначением |// в ptr - адрес         | 
|                        |операции                |переменной               | 
|                        |                        |ptr = &nVariable;        | 
|*                       |Косвенная адресация — вы|/* переменной nVaiue     | 
|                        |дает значение ,         |присваиваем значение     | 
|                        |хранящееся по адресу, на|переменной nVariable,    | 
|                        |который ссылается       |используя косвенную      | 
|                        |указатель               |адресацию */             | 
|                        |                        |nVaiue = *ptr;           | 
                                    Операции над структурами и объединениями 
|Операция      |Описание                         |Пример                    | 
|(точка)       |Операция Принадлежности,         |/* name — имя структуры, a| 
|              |используемая совместно с именем  |member - элемент,         | 
|              |структуры (объединения) для      |указанный в шаблоне. Тогда| 
|              |задания компонента этой структуры|этот элемент структуры    | 
|              |                                 |определяется следующим    | 
|              |                                 |образом */ name. member   | 
|              |                                 |(объединения)             | 
|->            |Косвенная адресация (определение |/* ptrName - указатель на | 
|              |принадлежности) элемента         |структуру, a member -     | 
|              |используется совместно с         |элемент, указанный в      | 
|              |указателем на структуру          |шаблоне.                  | 
|              |(объединение) для идентификации  |Тогда этот элемент        | 
|              |некоторого компонента этой       |структуры определяется    | 
|              |структуры (объединения)          |следующим образом */      | 
|              |                                 |ptrName->member           | 
                                                     Дополнительные операции 
|Операция  |Описание                               |Пример                  | 
|Sizeof    |Позволяет получить размер (в байтах)   |sizeof (double)         | 
|          |операнда, стоящего справа. Операндом   |/* если structName - имя| 
|          |может быть обозначение типа,           |структуры, то следующий | 
|          |заключенное в круглые скобки, либо имя |оператор возвратит ее   | 
|          |конкретной переменной (как базового,   |размер */               | 
|          |так и сложного типа)                   |sizeof  structName      | 
|(type)    |Операция приведения типа преобразует   |/* следующая операция   | 
|          |следующее за ней значение в тип,       |преобразует целое число | 
|          |определенный ключевым словом (или      |7 в число с плавающей   | 
|          |словами), заключенным в круглые скобки |точкой 7.0 */           | 
|          |                                       |(float)7                | 
|?:        |Операция условия имеет три операнда,   |/* Результат операции   | 
|          |каждый из которых является выражением, |равен большему из двух  | 
|          |расположенным следующим образом:       |чисел а и б */          | 
|          |выражение 1 ? выражение2: выражение З  |                        | 
|          |Результат равен значению выражение 2,  |                        | 
|          |если выражение 1 истинно и значению    |                        | 
|          |выражение З, в противном случае.       |                        | 
|          |                                       |(а >b)  ? а: b          | 
|,         |Операция "запятая" связывает два       |/* Наиболее часто       | 
|(запятая) |выражения в одно и гарантирует, что    |используется в цикле for| 
|          |левое выражение будет вычислено первым |* /                     | 
|          |                                       |for(i=0, nStep=2; niter | 
|          |                                       |< 10; i+=nStep);        | 
|          |                                       |                       | 
                                               Приоритет выполнения операции 
|Операции (от высшего приоритета к низшему)    |Порядок выполнения          | 
|( ) { }  - > . (точка)                        |слева направо               | 
|! ~ ++ --  - (тип)  *  &   sizeof  (все       |справа налево               | 
|унарные)                                      |                            | 
|* / %                                         |слева направо               | 
|+  -                                          |---- “-----                 | 
|>                                         |---- “-----                 | 
|<    >=                                  |---- “-----                 | 
|==     !=                                     |---- “-----                 | 
|&                                             |---- “-----                 | 
|^                                             |---- “-----                 | 
||                                             |---- “-----                 | 
|&&                                            |---- “-----                 | 
|||                                            |---- “-----                 | 
|?:                                            |---- “-----                 | 
|=   +=   -=    *=   /=   %=                   |справа налево               | 
|, (запятая)                                   |Слева направо               | 
                                                    Предопределенные макросы 
|Макрос    |Комментарий                                                     | 
|_date_    |Дата компиляции текущего исходного файла, представленная в виде | 
|          |строковой константы в формате Mmm dd yyyy (месяц день  год)     | 
|_file_    |Строковая константа, являющаяся именем текущего исходного файла | 
|_line_    |Десятичная целая константа, представляющая текущий номер строки | 
|          |исходного текста                                                | 
|_stdc_    |Равенство 1 показывает полную совместимость со стандартом ANSI  | 
|          |С; в противном случае не определен                              | 
|_TIME_    |Строковая константа, представляющая время начала обработки      | 
|          |текущего   исходного   файла   в   формате   hh:mm:ss           | 
|          |(часы:минуты:секунды)                                           | 
|_timestamp|Строковая константа, представляющая дату и время последней.     | 
|_         |Модификации текущего исходного файла в формате Ddd Mmm Date     | 
|          |hh:mm:ss yyyy (аббревиатура дня недели месяц число часы: минуты:| 
|          |секунды год)                                                    | 
                                                          Венгерская нотация 
|Префикс        |Имя                                                         | 
|a              |Array (Массив)                                              | 
|с              |Character (Символ)                                          | 
|d              |Date (Данные)                                               | 
|dbl            |Double (Двойной)                                            | 
|dc             |Device Context (Контекст устройства)                        | 
|dw             |Double Word (Двойное слово)                                 | 
|f              |Flag, Boolean or Logical (Флаг, Булевское или Логическое)   | 
|h              |Handle (Дескриптор)                                         | 
|i              |Integer (Целое)                                             | 
|inst           |Instance (Экземпляр, Копия)                                 | 
|I              |Long (Длинное)                                              | 
|li             |Long Integer (Длинное целое)                                | 
|Ip             |Long Pointer (Дальний указатель)                            | 
|msg            |Message (Сообщение)                                         | 
|n              |Numeric (Цифровое)                                          | 
|о              |Object (Объект)                                             | 
|pal            |Palette (Палитра)                                           | 
|psz            |Pointer to a Zero Terminated String (Указатель на строку с  | 
|               |завершающим нулем)                                          | 
|ptr            |Pointer (Указатель (или Р, когда использован с другими      | 
|               |переменными, подобными psz))                                | 
|r              |Real (Действительное, Вещественное)                         | 
|гс             |Rectangle (Прямоугольник)                                   | 
|rgb            |Red, Green, Blue (Переменная цвета)                         | 
|rsrc           |Resource (Ресурс)                                           | 
|sgl            |Single (Единственное)                                       | 
|si             |Short Integer (Короткое целое)                              | 
|sz             |Zero Terminated String (Строка с завершающим нулем)         | 
|u              |Unsigned (Без знаковое)                                     | 
|ui             |Unsigned Integer or Byte (Без знаковое целое или Байт)      | 
|w              |Word (Слово)                                                | 
|wnd            |Window (Окно)                                               | 
                                                     Директивы препроцессора 
|Директива                 |Комментарий                                      | 
|define идентификатор      |Используется для замены часто используемых в     | 
|#define идентификатор     |программе констант, ключевых слов, операторов и  | 
|текст                     |выражений содержательными идентификаторами       | 
|#define идентификатор     |                                                 | 
|(список, параметров) текст|                                                 | 
|#undef идентификатор      |Отменяет текущее определение идентификатора      | 
|#defined идентификатор    |Эта операция дает истинное (не равное 0)         | 
|#defined (идентификатор)  |значение, если заданный идентификатор в данный   | 
|                          |момент определен                                 | 
|#include            |Включает содержимое файла, заданного именем путь,| 
|#include "путь"           |в текущий компилируемый исходный файл. Путь      | 
|                          |представляет собой имя файла, которому может     | 
|                          |предшествовать спецификация каталога. Если       | 
|                          |спецификация пути заключена в двойные кавычки, то| 
|                          |препроцессор ищет файл в текущем (рабочем)       | 
|                          |каталоге, а в случае его отсутствия поиск        | 
|                          |переносится в стандартные каталоги поиска,       | 
|                          |которые задаются командой PATH операционной      | 
|                          |системы и установками интегрированной среды      | 
|                          |Visual C++. Если же спецификация пути заключена в| 
|                          |угловые скобки, то поиск осуществляется в        | 
|                          |стандартных каталогах                            | 
|#if Константное_выражение |Условная подстановка фрагмента текста в          | 
|                          |зависимости от значения константного выражения:  | 
|                          |фрагмент подставляется, если оно истинно. Конец  | 
|                          |условно подставляемого фрагмента обязательно     | 
|                          |должен быть отмечен директивой #endif            | 
|#endif                    |Обозначает конец условно подставляемого фрагмента| 
|                          |текста, начатого директивой #if                  | 
|#ifdef идентификатор      |Условная подстановка фрагмента текста в          | 
|#ifndef идентификатор     |зависимости от того, определен ли идентификатор  | 
|#else                     |Позволяет  организовать  альтернативную ветвь    | 
|                          |условной подстановки определенной директивой #if.| 
|                          |Между директивами #if и ttendif разрешается      | 
|                          |использовать только одну директиву #else         | 
|#elif                     |Сокращение от "else if". Используется как        | 
|константное_выражение     |альтернативный вариант при построении вложенных  | 
|                          |директив #if                                     | 
|#line целая_константа     |Используется при генерации сообщений периода     | 
|"имя_файла"               |компиляции и сообщает компилятору об изменении   | 
|(необязательное)          |порядка нумерации строк и необязательном         | 
|                          |изменении имени файла                            | 
|#error текст              |Служит для прерывания компиляции, поиска ошибок и| 
|                          |выдачи сообщения вида:Fatal: имя_файла           | 
|                          |номер_строки Error directive:Текст               | 
|#pragma последовательность|Определяет зависящие от реализации указания      | 
|символов                  |компилятору (прагмы). Компилятор Visual C++      | 
|                          |поддерживает следующие прагмы:                   | 
|                          |alloc text, comment, optimize, auto_inline,      | 
|                          |component, inline_depth, pack, bss seg, data_seg,| 
|                          |function, intrinsic, setlocale, code_seg,        | 
|                          |hdrstop, message, const seg, once, warning,      | 
|                          |inline recursion, check_stack, include_alias     | 
|                          |Например,директива                               | 
|                          |#pragma warning(disable: 4305)                   | 
|                          |предписывает компилятору не выдавать             | 
|                          |предупреждения при несовпадении типов данных     | 
                                                      Операции препроцессора 
|Операция            |Комментарий                                            | 
|#  - операция       | Используется перед параметром макроса, и предписывает | 
|подстановки строки  |вместо значения этого параметра подставлять его имя    | 
|## -  операция      |Объединяет лексемы и, удаляя все пробелы, образует     | 
|конкантенации       |новое имя. Одно из применений этой операции заключается| 
|                    |в динамическом создании имен переменных и              | 
|                    |макроопределений. В макроопределении эта операция      | 
|                    |обрабатывается после подстановки параметров макроса    | 
|#@— операция        |Рассматривает фактический параметр как отдельный       | 
|подстановки символа |символ, заключенный в одиночные кавычки                | 
                                                                   [pic] 
	
	
					
							 |