atributo const
O const palavra-chave modifica o tipo de uma declaração de tipo ou o tipo de um parâmetro de função, impedindo que o valor varie.
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], ...);
Parâmetros
-
tipo const
-
Especifica um inteiro MIDL válido, um caractere, uma cadeia de caracteres ou um tipo booliano. Os tipos MIDL válidos incluem pequeno, curto, longo, char, charâ *, wchar_t, wchar_t *, byte, byte *e void *. Os tipos inteiro e de caractere podem ser assinados ou não assinados.
-
identifier
-
Especifica um identificador MIDL válido. Os identificadores MIDL válidos consistem em até 31 caracteres alfanuméricos e/ou sublinhados e devem começar com um caractere alfabético ou sublinhado.
-
const-expression
-
Especifica uma expressão, um identificador ou uma constante numérica ou de caractere apropriada para o tipo especificado: literais inteiros constantes ou expressões inteiros constantes para constantes inteiros; Expressões boolianas que podem ser computadas na compilação para tipos boolianos ; constantes de caractere único para tipos char ; e constantes de cadeia de caracteres para tipos [string] . O tipo void * só pode ser inicializado como NULL.
-
type-attribute-list
-
Especifica um ou mais atributos que se aplicam ao tipo .
-
tipo de ponteiro
-
Especifica um tipo de ponteiro MIDL válido.
-
declarator e declarator-list
-
Especifica declaradores C padrão, como identificadores, declaradores de ponteiro e declaradores de matriz. Para obter mais informações, consulte Atributos de matriz e Sized-Pointer, matrizes e matrizes e ponteiros. A lista de declaradores consiste em um ou mais declaradores, separados por vírgulas. O identificador de nome do parâmetro no declarador de função é opcional.
-
function-attr-list
-
Especifica zero ou mais atributos que se aplicam à função. Os atributos de função válidos são [retorno de chamada], [local]; o atributo de ponteiro [ref], [unique]ou [ptr]; e os atributos de uso [cadeiade caracteres], [ignorar]e [context_handle].
-
type-specifier
-
Especifica uma base_type, struct, união, tipo de enumeração ou identificador de tipo. Uma especificação de armazenamento opcional pode preceder o especificador de tipo.
-
ptr-decl
-
Especifica zero ou mais declaradores de ponteiro. Um declarador de ponteiro é o mesmo que o declarador de ponteiro usado em C. Ele é construído a partir do * designador, modificadores como far e o qualificador const.
-
nome da função
-
Especifica o nome do procedimento remoto.
-
parameter-attribute-list
-
Especifica zero ou mais atributos direcionais, atributos de campo, atributos de uso e atributos de ponteiro apropriados para o tipo de parâmetro especificado. Separe vários atributos com vírgulas.
Comentários
MIDL permite declarar tipos inteiros, caracteres, cadeias de caracteres e boolianos constantes no corpo da interface do arquivo IDL. As declarações de tipo Const são reproduzidas no arquivo de cabeçalho gerado como diretivas #define .
Os compiladores de IDL de DCE não dão suporte a expressões constantes. Portanto, esse recurso não está disponível quando você usa o comutador /osf do compilador MIDL.
Uma constante definida anteriormente pode ser usada como o valor atribuído de uma constante subsequente. O valor de uma expressão integral constante é convertido automaticamente no respectivo tipo inteiro de acordo com as regras de conversão C.
O valor de uma constante de caractere deve ser um caractere ASCII com aspas simples. Quando a constante de caractere é o próprio caractere de aspas simples ('), o caractere de barra invertida (\) deve preceder o caractere de aspa única, como em \'.
O valor de uma constante de cadeia de caracteres deve ser uma cadeia de caracteres entre aspas duplas. Dentro de uma cadeia de caracteres, o caractere de barra invertida (\) deve preceder um caractere literal de aspas duplas ( " ), como em \". Dentro de uma cadeia de caracteres, o caractere de barra invertida (\) representa um caractere de escape. As constantes de cadeia de caracteres podem consistir em até 255 caracteres.
O valor NULL é o único valor válido para constantes do tipo void *. Todos os atributos associados à declaração const são ignorados.
O compilador MIDL não marcar para erros de intervalo na inicialização const. Por exemplo, quando você especifica "const short x = 0xFFFFFFFF;" o compilador MIDL não relata um erro e o inicializador é reproduzido no arquivo de cabeçalho gerado.
Exemplos
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 );
Confira também