attribut const

Le mot clé const modifie le type d’une déclaration de type ou le type d’un paramètre de fonction, ce qui empêche 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 les types small, short, long, char, char *, wchar_t, wchar_t *, byte, byte *, and void *. Les types entier et caractère peuvent être signés ou non signés.

identificateur

Spécifie un identificateur MIDL valide. Les identificateurs MIDL valides se composent de 31 caractères alphanumériques et/ou de trait 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 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 au moment 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é que sur 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.

déclarateur et déclarateur-list

Spécifie des déclarateurs C standard, tels que des identificateurs, des déclarateurs de pointeur et des déclarateurs de tableau. Pour plus d’informations, consultez Tableau et Sized-Pointer Attributs, tableaux et tableaux et pointeurs. La liste des déclarateurs 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 [callback], [local] ; l’attribut de pointeur [ref], [unique] ou [ptr] ; et les attributs d’utilisation [string], [ignore] et [context_handle].

spécificateur de type

Spécifie un base_type, un struct, une union, un type d’énumération ou un identificateur de 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é en C. Elle est construite à partir de l’indicateur * , des modificateurs comme jusqu’à présent et le qualificateur const.

nom de fonction

Spécifie le nom de la procédure distante.

parameter-attribute-list

Spécifie zéro ou plusieurs attributs directionnels, attributs de champ, attributs d’utilisation et attributs de pointeur appropriés pour le type de paramètre spécifié. Séparez plusieurs attributs par des virgules.

Remarques

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 ultérieure. 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 entre guillemets 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 character-string doit être une chaîne entre guillemets doubles. Dans une chaîne, le caractère de barre oblique inverse (\) doit précéder un caractère de guillemet littéral ( " ), comme dans \ ». Dans une chaîne, le caractère de 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 vérifie pas 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 que 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 également

Tableaux

MIDL Base Types

Boolean

Octet

Rappel

caractère

context_handle

Enum

Fichier IDL (Interface Definition)

Ignorer

Local

Long

/Osf

Ptr

Ref

Court

Signé

Petit

String

Struct

Union

Unique

Unsigned

Vide

Wchar_t