atributo const
La palabra clave const modifica el tipo de una declaración de tipo o el tipo de un parámetro de función, lo que impide que el valor cambie.
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
-
Especifica un entero MIDL válido, carácter, cadena o tipo booleano. Los tipos MIDL válidos incluyen small, short, long, char, char*, wchar_t, wchar_t *, byte, byte*, and void*. Los tipos enteros y de caracteres se pueden firmar o sin signo.
-
identifier
-
Especifica un identificador MIDL válido. Los identificadores MIDL válidos constan de hasta 31 caracteres alfanuméricos o de subrayado y deben comenzar con un carácter alfabético o de subrayado.
-
const-expression
-
Especifica una expresión, un identificador o una constante numérica o de caracteres adecuada para el tipo especificado: literales enteros constantes o expresiones enteros constantes para constantes enteros; Expresiones booleanas que se pueden calcular en la compilación para tipos booleanos; constantes de un solo carácter para los tipos char; y constantes de cadena para los tipos [string]. El tipo void * solo se puede inicializar en NULL.
-
type-attribute-list
-
Especifica uno o varios atributos que se aplican al tipo.
-
tipo de puntero
-
Especifica un tipo de puntero MIDL válido.
-
declarator y declarator-list
-
Especifica declaradores de C estándar, como identificadores, declaradores de puntero y declaradores de matriz. Para obtener más información, vea Array and Sized-Pointer Attributes, arrays, and Arrays and Pointers. La lista de declaradores consta de uno o varios declaradores, separados por comas. El identificador parameter-name del declarador de función es opcional.
-
function-attr-list
-
Especifica cero o más atributos que se aplican a la función. Los atributos de función válidos son [devolución de llamada], [local]; el atributo de puntero [ref], [unique]o [ptr]; y los atributos de uso [string], [ignore]y [context_handle].
-
type-specifier
-
Especifica un base_type, una estructura, una unión, un tipo de enumeración o un identificador de tipo. Una especificación de almacenamiento opcional puede preceder al especificador de tipos.
-
ptr-decl
-
Especifica cero o más declaradores de puntero. Un declarador de puntero es el mismo que el declarador de puntero usado en C. Se construye a partir del * designador, modificadores como lejos y el calificador const.
-
nombre de función
-
Especifica el nombre del procedimiento remoto.
-
parameter-attribute-list
-
Especifica cero o más atributos direccionales, atributos de campo, atributos de uso y atributos de puntero adecuados para el tipo de parámetro especificado. Separe varios atributos con comas.
MIDL permite declarar tipos enteros, caracteres, cadenas y booleanos constantes en el cuerpo de la interfaz del archivo IDL. Las declaraciones de tipo Const se reproducen en el archivo de encabezado generado como directivas #define.
Los compiladores IDL de DCE no admiten expresiones constantes. Por lo tanto, esta característica no está disponible cuando se usa el modificador /osf del compilador MIDL.
Una constante definida previamente se puede usar como valor asignado de una constante posterior. El valor de una expresión integral constante se convierte automáticamente en el tipo entero respectivo de acuerdo con las reglas de conversión de C.
El valor de una constante de caracteres debe ser un carácter ASCII entre comillas simples. Cuando la constante de caracteres es el propio carácter de comillas simples ('), el carácter de barra diagonal inversa (\) debe preceder al carácter de comillas simples, como en \'.
El valor de una constante de cadena de caracteres debe ser una cadena entre comillas dobles. Dentro de una cadena, el carácter de barra diagonal inversa (\) debe preceder a un carácter de comilla doble literal ( " ), como en \". Dentro de una cadena, el carácter de barra diagonal inversa (\) representa un carácter de escape. Las constantes de cadena pueden constar de hasta 255 caracteres.
El valor NULL es el único valor válido para constantes de tipo void*. Se omiten todos los atributos asociados a la declaración const .
El compilador MIDL no comprueba si hay errores de intervalo en la inicialización const . Por ejemplo, al especificar "const short x = 0xFFFFFFFF;", el compilador MIDL no notifica un error y el inicializador se reproduce en el archivo de encabezado generado.
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 );