int型 - 16bit以上の符号あり整数型
int型は、16bit以上であることが仕様上保証される符号あり整数型です。多くの処理系では、32bit符号あり整数型として実装されているかもしれませんが、それは、C言語の仕様上保証されたものではありません。
#include <stdio.h> int main (void) { int num = 34; printf("%d\n", num); }
C99で導入された幅と符号あり・なしが保証される整数型
ビット幅と符号あり・なしを確実に指定するにはC99で導入された以下の整数型を使用します。数値計算を行う場合は、こちらを使用するのがお勧めです。
- int8_t - 符号あり8bit整数型
- int16_t - 符号あり16bit整数型
- int32_t - 符号あり32bit整数型
- int64_t - 符号あり64bit整数型
- uint8_t - 符号なし8bit整数型
- uint16_t - 符号なし16bit整数型
- uint32_t - 符号なし32bit整数型
- uint64_t - 符号なし64bit整数型
mainの戻り値はint型ですか?
mainの戻り値はint型、またはint型と互換性のある型です。
処理系で、int型の幅が32bitの場合は、int32_t型をmain関数の戻り値の型にしても大丈夫ですが、処理系に依存する記述を書くのは、お勧めしません。
素直にint型にしておきましょう。
数値の演算を行う場合は暗黙の型変換で、int型より小さな値がint型になる
数値の演算を行う場合は暗黙の型変換で、int型より小さな値がint型に型変換されます。以下の記事で詳しく扱っています。