const 屬性

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 類型包括smallshortlongchar、charÂ*wchar_twchar_t *byte、byte *voidÂ* 整數和字元類型可以 帶正負號不帶正負號

identifier

指定有效的 MIDL 識別碼。 有效的 MIDL 識別碼包含最多 31 個英數位元和/或底線字元,且必須以字母或底線字元開頭。

const-expression

指定適用于指定型別的運算式、識別碼或數值或字元常數:整數常數常數的常數整數常值或常數整數運算式;布林值型別編譯時可計算的 布林 運算式; char 類型的單一字元常數;和 [string] 類型的字串常數。 void *類型只能初始化為Null

type-attribute-list

指定套用至類型的一或多個屬性。

pointer-type

指定有效的 MIDL 指標類型。

宣告子和宣告子清單

指定標準 C 宣告子,例如識別碼、指標宣告子和陣列宣告子。 如需詳細資訊,請參閱 陣列和Sized-Pointer屬性陣列陣列和指標宣告子清單包含一或多個宣告子,並以逗號分隔。 函式宣告子中的參數名稱識別碼是選擇性的。

function-attr-list

指定套用至函式的零個或多個屬性。 有效的函式屬性為[callback][local];指標屬性[ref][unique][ptr];和使用量屬性[string][ignore][coNtext_handle]。

type-specifier

指定 base_type結構等位列舉 類型或類型識別碼。 選擇性儲存體規格可以位於 類型規範之前。

ptr-decl

指定零個或多個指標宣告子。 指標宣告子與 C 中使用的指標宣告子相同。它會從 * 指示項、 方修飾詞和限定詞 const建構。

function-name

指定遠端程式的名稱。

parameter-attribute-list

指定零個或多個方向屬性、欄位屬性、使用方式屬性,以及適用于指定參數類型的指標屬性。 以逗號分隔多個屬性。

備註

MIDL 可讓您在 IDL 檔案的介面主體中宣告常數整數、字元、字串和布林值類型。 Const 類型宣告會在產生的標頭檔中重現為 #define 指示詞。

DCE IDL 編譯器不支援常數運算式。 因此,當您使用 MIDL 編譯器 /osf 參數時,無法使用此功能。

先前定義的常數可以做為後續常數的指派值。 常數整數運算式的值會根據 C 轉換規則自動轉換成個別的整數類型。

字元常數的值必須是單引號 ASCII 字元。 當字元常數是單引號字元本身 (') 時,反斜線字元 (\) 必須位於單引號字元前面,如 \' 所示。

字元字串常數的值必須是雙引號字串。 在字串中,反斜線 () \ 字元必須在常值雙引號字元前面 ( ) ,如\」。 在字串中,反斜線字元 () \ 代表逸出字元。 字串常數最多可以包含 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

簽署

string

結構

聯盟

獨特

符號

無效

wchar_t