Поделиться через


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

identifier

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

const-expression

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

type-attribute-list

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

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

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

declarator и declarator-list

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

function-attr-list

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

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

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

ptr-decl

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

имя функции

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

parameter-attribute-list

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

Комментарии

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

Компиляторы DCE IDL не поддерживают константные выражения. Поэтому эта функция недоступна при использовании параметра / 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

Логических

Байт

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

Char

context_handle

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

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

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

Местных

long

/Osf

Ptr

Ref

short

Подписал

Маленький

строка

Структура

union

Уникальный

Без знака

Void

wchar_t