attribut const
Le const mot clé modifie le type d’une déclaration de type ou le type d’un paramètre de fonction, empêchant la valeur de varier.
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], ...);
Paramètres
-
const-type
-
Spécifie un entier MIDL, un caractère, une chaîne ou un type booléen valide. Les types MIDL valides incluent small, short, long, char, char *, wchar_t, wchar_t *, byte, byte * et void *. Les types entier et caractère peuvent être signés ou non signés.
-
identifier
-
Spécifie un identificateur MIDL valide. Les identificateurs MIDL valides se composent d’un maximum de 31 caractères alphanumériques et/ou de soulignement et doivent commencer par un caractère alphabétique ou de soulignement.
-
const-expression
-
Spécifie une expression, un identificateur ou une constante numérique ou de caractère appropriée pour le type spécifié : littéraux entiers constants ou expressions entières constantes pour les constantes entières ; Expressions booléennes qui peuvent être calculées lors de la compilation pour les types booléens ; constantes à caractère unique pour les types de caractères ; et constantes de chaîne pour les types [string]. Le type void * ne peut être initialisé qu’en NULL.
-
type-attribute-list
-
Spécifie un ou plusieurs attributs qui s’appliquent au type.
-
type de pointeur
-
Spécifie un type de pointeur MIDL valide.
-
declarator et declarator-list
-
Spécifie les déclarateurs C standard, tels que les identificateurs, les déclarateurs de pointeurs et les déclarateurs de tableau. Pour plus d’informations, consultez Tableaux et Sized-Pointer Attributs, tableaux et tableaux et pointeurs. Le declarator-list se compose d’un ou plusieurs déclarateurs, séparés par des virgules. L’identificateur de nom de paramètre dans le déclarateur de fonction est facultatif.
-
function-attr-list
-
Spécifie zéro ou plusieurs attributs qui s’appliquent à la fonction. Les attributs de fonction valides sont [rappel], [local]; l’attribut pointeur [ref], [unique] ou [ptr]; et les attributs d’utilisation [string], [ignore] et [context_handle].
-
spécificateur de type
-
Spécifie un identificateur de type base_type, struct, union, type d’énumération ou type. Une spécification de stockage facultative peut précéder le spécificateur de type.
-
ptr-decl
-
Spécifie zéro ou plusieurs déclarateurs de pointeur. Un déclarateur de pointeur est identique au déclarateur de pointeur utilisé dans C. Il est construit à partir de l’indicateur * , des modificateurs tels que la distance et du qualificateur const.
-
nom de la fonction
-
Spécifie le nom de la procédure distante.
-
parameter-attribute-list
-
Spécifie un ou plusieurs attributs directionnels, des attributs de champ, des attributs d’utilisation et des attributs de pointeur appropriés pour le type de paramètre spécifié. Séparez plusieurs attributs par des virgules.
Notes
MIDL vous permet de déclarer des types entiers, caractères, chaîne et booléens constants dans le corps de l’interface du fichier IDL. Les déclarations de type Const sont reproduites dans le fichier d’en-tête généré en tant que directives #define.
Les compilateurs IDL DCE ne prennent pas en charge les expressions constantes. Par conséquent, cette fonctionnalité n’est pas disponible lorsque vous utilisez le commutateur /osf du compilateur MIDL.
Une constante précédemment définie peut être utilisée comme valeur affectée d’une constante suivante. La valeur d’une expression intégrale constante est automatiquement convertie en type entier respectif conformément aux règles de conversion C.
La valeur d’une constante de caractère doit être un caractère ASCII à guillemet unique. Lorsque la constante de caractère est le caractère à guillemet unique lui-même ('), la barre oblique inverse (\) doit précéder le caractère de guillemet unique, comme dans \'.
La valeur d’une constante de chaîne de caractères doit être une chaîne entre guillemets doubles. Dans une chaîne, la barre oblique inverse (\) doit précéder un caractère entre guillemets doubles littéral ( " ), comme dans \ ». Dans une chaîne, le caractère barre oblique inverse (\) représente un caractère d’échappement. Les constantes de chaîne peuvent comporter jusqu’à 255 caractères.
La valeur NULL est la seule valeur valide pour les constantes de type void *. Tous les attributs associés à la déclaration const sont ignorés.
Le compilateur MIDL ne case activée pas pour les erreurs de plage dans l’initialisation const. Par exemple, lorsque vous spécifiez « const short x = 0xFFFFFFFF ; », le compilateur MIDL ne signale pas d’erreur et l’initialiseur est reproduit dans le fichier d’en-tête généré.
Exemples
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 );
Voir aussi