Атрибут const

Ключевое слово const изменяет тип объявления типа или тип параметра функции, предотвращая изменение значения.

const const-type identifier = const-expression ;

[ typedef [ , type-attribute-list ] ] const const-type declarator-list;

[ typedef [ , type-attribute-list ] ] pointer-type const declarator-list;

[ [ function-attr-list ] ] type-specifier [ ptr-decl ] function-name(
    [ [ parameter-attribute-list ] ] ) const; 

const-type [declarator], [ [ parameter-attribute-list ] ] pointer-type const [declarator], ...);

Параметры

const-type

Указывает допустимое целое число MIDL, символ, строку или логический тип. Допустимые типы MIDL включают небольшие, короткие, длинные, char, char *, wchar_t, wchar_t *, байт, байт *и void *. Целочисленные и символьные типы могут быть подписаны или без знака.

идентификатор

Указывает допустимый идентификатор MIDL. Допустимые идентификаторы MIDL состоят из до 31 буквенно-цифровых символов и (или) символов подчеркивания и должны начинаться с алфавита или символа подчеркивания.

const-expression

Задает выражение, идентификатор или числовую или символьную константу, соответствующую указанному типу: константные целые литералы или константы целочисленных выражений для целочисленных констант; Логические выражения, которые можно вычислить при компиляции для логических типов; Константы с одним символом для типов char ; и строковые константы для типов [string] . Тип void * можно инициализировать только до NULL.

type-attribute-list

Указывает один или несколько атрибутов, которые применяются к типу.

тип указателя

Указывает допустимый тип указателя MIDL.

декларатор и декларатор-list

Задает стандартные деклараторы C, такие как идентификаторы, деклараторы указателя и деклараторы массива. Дополнительные сведения см. в разделе "Массив" и "Sized-Pointer Атрибуты", " Массивы" и " Массивы" и "Указатели". Список декларатора состоит из одного или нескольких деклараторов, разделенных запятыми. Идентификатор имени параметра в деклараторе функции является необязательным.

function-attr-list

Указывает ноль или больше атрибутов, которые применяются к функции. Допустимые атрибуты функции : [обратный вызов], [local]; атрибут указателя [ref], [unique], или [ptr]; и атрибуты использования [string], [игнорировать], и [context_handle].

описатель типа

Задает base_type, структуру, объединение, тип перечисления или идентификатор типа. Необязательная спецификация хранилища может предшествовать описательу типа.

ptr-decl

Указывает ноль или больше деклараторов указателей. Декларатор указателя совпадает с декларатором указателя, используемым в C. Он построен на основе конструктора * , модификаторов, таких как далеко, и квалификатора констант.

имя функции

Указывает имя удаленной процедуры.

параметр-атрибут-list

Задает нулевые или более направленные атрибуты, атрибуты поля, атрибуты использования и атрибуты указателя, соответствующие указанному типу параметров. Разделите несколько атрибутов запятыми.

Замечания

MIDL позволяет объявлять константные целые числа, символы, строки и логические типы в тексте интерфейса файла IDL. Объявления типа Const воспроизводится в созданном файле заголовка как директивы #define.

Компиляторы IDL DCE не поддерживают константные выражения. Поэтому эта функция недоступна при использовании переключателя компилятора /osf MIDL.

Ранее определенная константа может использоваться в качестве назначенного значения последующей константы. Значение константного целочисленного выражения автоматически преобразуется в соответствующий целочисленный тип в соответствии с правилами преобразования C.

Значение константы символа должно быть символом ASCII с одним кавычками. Если константа символа является символом с одним кавычками ('), символ обратной косой черты (\) должен предшествовать символу с одним кавычками, как в \'.

Значение константы строки символов должно быть двойной кавычки. В строке символ обратной косой черты (\) должен предшествовать символу двойного кавычки ( " ), как в \". В строке символ обратной косой черты (\) представляет escape-символ. Строковые константы могут содержать до 255 символов.

Значение NULL является единственным допустимым значением для констант типа void *. Все атрибуты, связанные с объявлением const , игнорируются.

Компилятор MIDL не проверяет наличие ошибок диапазона в инициализации констант . Например, если указать "const short x = 0xFFFFFFFF;" компилятор MIDL не сообщает об ошибке, и инициализатор воспроизводится в созданном файле заголовка.

Примеры

const void *  p1        = NULL; 
const char    my_char1  = 'a'; 
const char    my_char2  = my_char1; 
const wchar_t my_wchar3 = L'a'; 
const wchar_t * pszNote = L"Note"; 
const unsigned short int x = 123; 
 
typedef [string] const char *LPCSTR; 
 
HRESULT GetName([out] wchar_t * const pszName );

См. также

Массивы

Базовые типы MIDL

Boolean

Байт

Обратного вызова

обугливать

context_handle

Перечисления

Файл определения интерфейса (IDL)

Игнорировать

Местных

Длинные

/Osf

Ptr

Ref

Короткие

Подписал

Маленький

Строка

Структура

Союза

Уникальный

Без знака

Void

Wchar_t