次の方法で共有


C 型指定子

宣言内の型指定子は、変数または関数宣言の型を定義します。

構文

type-specifier: voidcharshortintlongfloatdoublesignedunsignedstruct-or-union-specifierenum-specifiertypedef-name

signed charsigned intsigned short intsigned long int 型と、それに対応する unsigned 型および enum は、"整数" 型と呼ばれます。 floatdouble、および long double 型指定子は、"浮動" または "浮動小数点" 型と呼ばれます。 変数宣言または関数宣言で、整数型または浮動小数点型の指定子を使用できます。 もともとは、宣言で type-specifier が指定されなかった場合は、int と見なされていました。 Microsoft コンパイラでは、既定の int 宣言は受け入れられなくなりました。

省略可能なキーワード signedunsigned は、enum 以外の整数型の前または後に置くことができ、型指定子として単独で使用することもできます。その場合は、それぞれ signed int および unsigned int として解釈されます。 単独で使用した場合、 int キーワードは signed であると見なされます。 単独で使用した場合、キーワード longshortlong int および short int であると見なされます。

列挙型は基本的な型と見なされます。 列挙型の型指定子については、列挙型の宣言に関するページで説明します。

キーワード void には 3 つの使用方法があります。関数の戻り値の型を指定する、引数を取らない関数の引数型リストを指定する、指定されていない型へのポインターを指定する、です。 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* だけです。

Microsoft 固有の仕様はここまで

typedef 宣言」で説明されているように、typedef 宣言で追加の型指定子を作成できます。 各型のサイズについては、「基本型の格納」をご覧ください。

関連項目

宣言と型
typeof, __typeof__ (C23)
typeof_unqual, __typeof_unqual__ (C23)