カテゴリ: C言語 更新日: 2026/01/11

C言語の型修飾子を徹底解説!初心者でもわかるlong・short・signed・unsignedの組み合わせ

C言語の型修飾子(long, short, signed, unsigned)の組み合わせ
C言語の型修飾子(long, short, signed, unsigned)の組み合わせ

先生と生徒の会話形式で理解しよう

生徒

「C言語の変数でintとかcharは聞いたことがあります。でもlongやshortって何ですか?」

先生

「良いところに気がついたね。C言語では型を細かく指定できる仕組みがあり、その中に型修飾子というものがあります。」

生徒

「型修飾子って難しそうな名前ですね。何に使うんでしょうか?」

先生

「簡単に言うと、より大きな数字を扱いたい時や、マイナスを使うかどうかを指定するために使います。実際のプログラムでもかなり重要なんだよ。」

生徒

「なるほど。具体的にどんな種類があるんですか?」

先生

「それじゃあ、基本から順番に見ていこう。」

1. C言語の型修飾子とは?

1. C言語の型修飾子とは?
1. C言語の型修飾子とは?

C言語の変数とデータ型には、メモリの大きさや扱える数値の範囲が決まっています。例えば、intは多くの環境で32ビットの整数として扱われます。しかし、すべてのプログラムが同じ大きさの数字を扱うとは限りません。そこで登場するのが型修飾子です。型修飾子を使うことで、より小さなメモリで整数を扱ったり、大きな値を保存できるようにしたりできます。

型修飾子は主に次の4種類が使われます。

  • short(小さい整数を扱う)
  • long(大きい整数を扱う)
  • signed(プラスとマイナスの両方を使う)
  • unsigned(マイナスを使わずプラスだけ)

これらを組み合わせることで、メモリと整数の範囲を自由に調整できるため、C言語の細かな制御が可能になります。組み合わせを理解することは、メモリ管理やシステム開発でとても役立ちます。

2. shortとlongの違いとは?

2. shortとlongの違いとは?
2. shortとlongの違いとは?

shortとlongは、整数の大きさを調整するために使う型修飾子です。shortはメモリを節約し、longはより大きな数字を扱うことができます。

例えば、shortは小さな数を扱いたいときに便利で、組み込み機器やメモリが少ない環境で使われることが多いです。一方、longは非常に大きな数を扱う処理、ファイルサイズ、時間や日付、ID番号など、大きな値が必要な場面でよく登場します。

組み合わせの例:


short a;
long b;
long long c;

shortは通常のintより小さく、longは通常のintより大きな範囲を扱えます。また、long longはさらに広い範囲を扱えるため、巨大な整数を扱うときに使われます。

3. signedとunsignedの役割

3. signedとunsignedの役割
3. signedとunsignedの役割

signedはマイナスとプラスの両方を扱える整数を作り、unsignedはマイナスを扱わず、その代わりに扱える最大値が大きくなります。例えば、intが32ビットならsigned intは約マイナス二十億からプラス二十億まで扱えますが、unsigned intはゼロから約四十億まで扱えます。

つまり、マイナスが必要ない場合はunsignedを使うと同じメモリでより多くの値を扱うことができて効率的です。


unsigned int score;
signed int temperature;

ゲームのスコアやID番号のようにマイナスが必要ない場合はunsignedが向いています。気温や差の計算など、マイナスがありえる値にはsignedが使われます。

4. 組み合わせで変数をもっと自由に扱える

4. 組み合わせで変数をもっと自由に扱える
4. 組み合わせで変数をもっと自由に扱える

C言語では型修飾子を組み合わせることで、より細かなデータ型を作れます。よく使われる組み合わせは次のようなものです。

  • unsigned short
  • long long
  • unsigned long long

unsigned short age;
unsigned long file_size;
unsigned long long big_value;

unsigned shortは小さな正の整数に向いています。子どもの年齢や人数など、小さな範囲で十分な値に使えます。unsigned longはファイルサイズのような大きな数値で役立ちます。unsigned long longは巨大なデータ処理、暗号処理、桁の大きい数を扱う計算などで登場します。

5. 型修飾子の実行結果を目で見てみよう

5. 型修飾子の実行結果を目で見てみよう
5. 型修飾子の実行結果を目で見てみよう

実際のプログラムで型修飾子を使ってみると、扱える値の違いがよく分かります。例えばunsigned charはゼロから二百五十五まで扱えますが、signed charはマイナス百二十八からプラス百二十七までになります。


#include <stdio.h>

int main(void)
{
    unsigned char a = 255;
    signed char b = -1;

    printf("unsigned char a = %u\n", a);
    printf("signed char b = %d\n", b);

    return 0;
}

unsigned char a = 255
signed char b = -1

同じ8ビットでも、符号を付けるかどうかで扱える範囲が変わることが分かります。この仕組みを理解すると、C言語のメモリ管理がとても分かりやすくなります。

6. 型修飾子を選ぶコツ

6. 型修飾子を選ぶコツ
6. 型修飾子を選ぶコツ

型修飾子を使うときは、扱いたい数値の性質に合わせて選ぶことが大切です。例えば、マイナスが発生しない値ならunsignedを使うことで最大値が増えます。巨大な数値を扱う場合はlongやlong longを使うことでオーバーフローを防ぐことができます。

また、組み込み機器やマイコンなどメモリが少ない環境ではshortが使われることがあります。パソコンでのプログラミングでも、型の違いを理解しておくことで効率の良いコードが書けます。

カテゴリの一覧へ
新着記事
New1
C++
C++の変数のスコープと有効範囲を完全解説!初心者でもわかる基本と考え方
New2
C++
C++とは?歴史と特徴を初心者向けに解説!Rustとの違いとモダン言語比較
New3
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド
New4
Rust
Rust開発環境をLinuxで構築する方法とおすすめ設定を初心者向けに徹底解説
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.2
Java&Spring記事人気No2
C言語
C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方
No.3
Java&Spring記事人気No3
C言語
Makefile入門:C言語プロジェクトを自動ビルドしよう!初心者でも分かる仕組みと使い方
No.4
Java&Spring記事人気No4
C言語
C言語の開発環境をWindowsに構築する方法【Visual Studio編】
No.5
Java&Spring記事人気No5
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.6
Java&Spring記事人気No6
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.7
Java&Spring記事人気No7
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.8
Java&Spring記事人気No8
C++
MinGWとMSYS2でWindowsにC++環境を構築する方法を徹底解説!初心者でもできるセットアップガイド