Программирование и комп-ры

Справочник по 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       |Сравнение на "меньше или равно"                         |
|              Р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]


смотреть на рефераты похожие на "Справочник по Visual С++"