Атрибут 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 *, byte, byte *, and void *. Целочисленные и символьные типы могут быть подписаны или без знака.

identifier

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

const-expression

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

type-attribute-list

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

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

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

declarator и declarator-list

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

function-attr-list

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

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

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

ptr-decl

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

имя функции

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

parameter-attribute-list

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

Remarks

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

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

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

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

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

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

Компилятор MIDL не проверяет наличие ошибок диапазона в инициализации const . Например, при указании 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

Байт

обратный вызов

char

context_handle

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

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

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

Местных

Длинные

/osf

ptr

Ref

short

Подписал

Маленький

строка

Структура

Союза

Уникальный

Без знака

Void

wchar_t