C++ の構造体と Typedef 構造体の違い

Naila Saad Siddiqui 2023年10月12日
  1. C/C++ の typedef キーワード
  2. C++ における structtypedef struct の違い
C++ の構造体と Typedef 構造体の違い

この小さな記事では、C++ のキーワード typedef について説明します。 また、単純な構造体と C++ の typedef 構造体の違いについても説明します。

C/C++ の typedef キーワード

typedef は、データ型に新しい名前またはエイリアスを与えるために使用される C/C++ のキーワードです。 これらのデータ型は、プリミティブ (例: int、float など) または非プリミティブまたはユーザー定義のデータ型 (例: classstruct、または union) です。

typedef キーワードは、主に、プログラムで使用するのがやや複雑であるか、プログラムのコンテキストとの関連性が低い名前を持つユーザー定義のデータ型で使用されます。

プリミティブ int データ型の typedef を宣言するための構文は次のとおりです。

typedef int negative_int;

さて、プログラムで int 変数を宣言する必要があるときはいつでも、次のように negative_int という名前でそれを行うことができます:

#include <iostream>
using namespace std;

int main() {
  cout << "Welcome to the typedef tutorial" << endl;
  typedef int negative_int;  // typedef keyword use
  negative_int num = -7;
  cout << "The number is: " << num << endl;
  return 0;
}

このコードの出力は次のようになります。

Welcome to the typedef tutorial
The number is: -7

C++ における structtypedef struct の違い

C++ では、structtypedef struct の間に区別はありません。なぜなら、同じ名前の別の宣言が名前を不明瞭にしない限り、すべての structunionsenums、および class のためです。 宣言は、暗黙的に typedef されているように動作します。

C 言語では、typedef struct を使用しました。C では、struct のオブジェクトを作成する必要があるときはいつでも、struct キーワードを毎回使用することが義務付けられているためです。 したがって、typedef は、struct をその名前だけで使用できる場合に役立ちます。

関連記事 - C++ Struct