共用方式為


C 類型規範

宣告中的類型指定名稱會定義變數或函式宣告的類型。

語法

  • type-specifier
    void

    char

    short

    int

    long

    float

    double

    signed

    unsigned

    struct-or-union-specifier

    enum-specifier

    typedef-name

signed charsigned intsigned short intsigned long int 類型加上與其對應的 unsigned 和 enum,稱為「整數」類型。 floatdouble 和 long double 類型指定名稱稱為「浮點」或「浮點數」類型。 您可以在變數或函式宣告中使用任何整數或浮點類型指定名稱。 如果宣告中未提供 type-specifier,則會被當做 int。

選擇性關鍵字 signed 和 unsigned 可以在任何整數類型之前或之後 (enum 除外),而且也可單獨做為類型指定名稱使用,在此情況下,這類關鍵字即為 signed int 和 unsigned int。 單獨使用時,會假設關鍵字 int 為 signed。 單獨使用時,關鍵字 longshort 即為 long int 和 short int。

列舉類型被視為基本類型。 列舉類型的類型指定名稱會在列舉宣告中討論。

關鍵字 void 有三個用途:指定函式傳回類型、指定不使用引數之函式的引數類型清單,以及指定未指定類型的指標。 您可以使用 void 類型宣告不傳回值的函式或宣告未指定類型的指標。 如需有關 void 單獨出現在函式名稱之後並以括號括住時的詳細資訊,請參閱引數

Microsoft 特定的

類型檢查現在符合 ANSI 標準,這表示 short 和 int 類型是不同的類型。 例如,這是在舊版編譯器中接受之 Microsoft C 編譯器的重新定義。

int   myfunc();
short myfunc();

下一個範例也會產生關於不同類型間接取值的警告:

int *pi;
short *ps;

ps = pi;  /* Now generates warning */

Microsoft C 編譯器也會產生是否帶正負號之差異的警告。 例如:

signed int *pi;
unsigned int *pu

pi = pu;  /* Now generates warning */

會評估類型 void 運算式的副作用。 您無法以任何方式使用具有 void 類型之運算式的 (不存在的) 值,也不能將 void 運算式 (透過隱含或明確轉換) 轉換為 void 以外的任何類型。 如果您在需要 void 運算式的內容使用任何其他類型的運算式,則會捨棄其值。

為符合 ANSI 規格,不能將 void** 做為 int** 使用。 只有 void* 能夠當做未指定類型的指標使用。

END Microsoft 特定的

您可以使用 typedef 宣告建立其他類型指定名稱,如 Typedef 宣告 中所述。 如需每種類型之大小的詳細資訊,請參閱基本類型的儲存區

請參閱

概念

宣告和類型