データ型修飾子とデータのサイズ

void 以外の基本データ型には修飾子をつけることによって、よりきめ細かく指定することができる。データ型修飾子には次の4つがある。

  • long
  • short
  • signed
  • unsigned

long と short はそれぞれデータサイズが変わる。といっても ANSI の規定が厳密じゃないみたいなので、処理系によって違うらしい。signed と unsigned は符号つきか符号なしかの違い。省略すると符号つきと解釈される。
データ型修飾子はそれぞれ適用できるデータ型が決まっているので、表にまとめてみた。

shortint
longint, double
signedchar, int
unsignedchar, int

それぞれのデータサイズは次のプログラムで確認してみる(ググって調べた)。

#include

int main(void)
{
    printf("char = %lu\n", sizeof(char));
    printf("int = %lu\n", sizeof(int));
    printf("short int = %lu\n", sizeof(short int));
    printf("long int = %lu\n", sizeof(long int));
    printf("float = %lu\n", sizeof(float));
    printf("double = %lu\n", sizeof(double));
    printf("long double = %lu\n", sizeof(long double));

    return 0;
}
[email protected] $ gcc --version
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[email protected] $ ./sample_4_1
char = 1
int = 4
short int = 2
long int = 8
float = 4
double = 8
long double = 16

単位はバイト。

カテゴリー: C パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください