Рефераты

Справочник по 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]


© 2010 Современные рефераты