string 屬性

[ 字串 ] 屬性工作表示一維 charwchar _ tbyte (或對等的) 陣列,或是這類陣列的指標必須視為字串。 字串也可以是陣列 (或陣列的指標) ,其欄位全都是 byte 類型的結構。

typedef [ string [[ , type-attribute-list ]] ] type-specifier declarator-list; 

typedef [ struct | union ] 
{
    [ string [[ , field-attribute-list ]] ] type-specifier declarator-list;
    ...
};

[ string [[ , function-attribute-list ]] ] type-specifier ptr-decl function-name(
  [[ [ parameter-attribute-list ] ]] type-specifier [[standard-declarator]]
  , ...);

[[ [ function-attribute-list ] ]] type-specifier [[ptr-decl]] function-name(
    [ string [[ , parameter-attribute-list ]] ] type-specifier [[standard-declarator]]
  , ...);

參數

type-attribute-list

指定套用至類型的一或多個屬性。 有效的型別屬性包括 [ 控制碼 ][ 切換 _ 類型 ][ 傳輸 _ 為 ] ; 指標屬性 [ ref ][ unique ][ ptr ] ; 以及使用方式屬性 [ 內容 _ 控制碼 ][ 字串 ][ ] 。 以逗號分隔多個屬性。

類型規範

指定 基底類型結構 類型或類型識別碼。 選擇性的儲存規格可以在 類型 規範之前。

標準-宣告子

指定標準 C 宣告子,例如識別碼、指標宣告子或陣列宣告子。 如需詳細 資訊,請參閱 陣列和 Sized-Pointer 屬性、陣列和 陣列和指標

宣告子清單

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

欄位屬性清單

指定套用至結構、聯集成員或函數參數的零或多個欄位屬性。 這兩個有效的欄位屬性是 [ 最大 _值, ][ 大小 _ 為 ] ; 使用方式屬性 [ 字串 ][ 忽略 ][ 內容 _ 控制碼 ]、指標屬性 [ ref ][ unique ][ ptr ] ,以及 union 屬性 [ 參數 _ 類型 ]。 以逗號分隔多個欄位屬性。

函數-屬性清單

指定套用至函數的零或多個屬性。 有效的函式屬性為 [ 回呼 ][ local、 ] 指標屬性 [ ref ][ unique ][ ptr ]; 以及使用方式屬性 [ 字串 ][ 忽略 ][ 內容 _ 控制碼 ]

ptr-decl

指定套用 [ 字串 ] 屬性的選擇性指標宣告子。 指標宣告子與 C 中使用的指標宣告子相同:它是由指示項 * 、最 的修飾詞和限定詞 const所構成。

函數名稱

指定遠端程式的名稱。

參數屬性清單

包含零或多個適用于指定之參數類型的屬性。 參數屬性可以取得和 [ 輸出 ] 方向 [ 性 ] 屬性; 欄位屬性 [ 最大值 _] ,而 [ 大小 _ 為 ] ; 指標屬性 [ ref ][ unique ][ ptr ]; 以及使用屬性 [ 內容 _ 句 ] 柄[ 字串 ]。 Usage 屬性 [ ignore ] 不能用來做為參數屬性。 以逗號分隔多個屬性。

備註

如果 [ ] 字串 屬性搭配在執行時間決定界限的陣列使用,則您也必須指定 [ [ _ ] [ _ ] 大小] 或 [最大值] 屬性,如下列範例所示:

/* a string that can hold up to MAX_STRING_LENGTH characters */
typedef [string, max_is(MAX_STRING_LENGTH)] char line[];

[ 字串 ] 屬性不能與指定傳輸專案範圍的屬性搭配使用,例如 [ _ ] [ first _ 是 ]、last 和 [ length _ ]

在多維陣列上使用時, [ 字串 ] 屬性會套用至最右邊的陣列。

若要定義計數位符串,請勿使用 [ 字串 ] 屬性。 使用字元陣列或以字元為基礎的指標,如下所示:

typedef struct 
{ 
    unsigned short size; 
    unsigned short length; 
    [size_is(size), length_is(length)] char string[*]; 
} counted_string;

[ 字串 ] 屬性會指定存根應使用語言提供的方法來判斷字串的長度。

在 C 中宣告字串時,您必須配置空間給標記字串結尾的額外字元。

範例

/* a string type that can hold up to 80 characters */ 
typedef [string] char line[81]; 
 
HRESULT Proc1([in, string] char * pszName);

另請參閱

陣 列

MIDL 基底類型

回撥

char

const

內容 _ 控制碼

枚舉

第一個 _ 是

處理

(IDL) 檔案的介面定義

忽略

last _

長度 _ 為

當地

最大值 _ 為

指標 _ 預設值

ptr

ref

大小 _ 為

結構

切換 _ 類型

傳輸 _ 為

聯盟

獨特

wchar _ t