C++ の構造体と Typedef 構造体の違い
Naila Saad Siddiqui
2023年10月12日
この小さな記事では、C++ のキーワード typedef
について説明します。 また、単純な構造体と C++ の typedef
構造体の違いについても説明します。
C/C++ の typedef
キーワード
typedef
は、データ型に新しい名前またはエイリアスを与えるために使用される C/C++ のキーワードです。 これらのデータ型は、プリミティブ (例: int、float など) または非プリミティブまたはユーザー定義のデータ型 (例: class
、struct
、または 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++ における struct
と typedef struct
の違い
C++ では、struct
と typedef struct
の間に区別はありません。なぜなら、同じ名前の別の宣言が名前を不明瞭にしない限り、すべての struct
、unions
、enums
、および class
のためです。 宣言は、暗黙的に typedef
されているように動作します。
C 言語では、typedef struct
を使用しました。C では、struct
のオブジェクトを作成する必要があるときはいつでも、struct
キーワードを毎回使用することが義務付けられているためです。 したがって、typedef
は、struct
をその名前だけで使用できる場合に役立ちます。