C++ の Typedef 構造体

C No Typedef Gou Zao Ti



C++ プログラミング言語には、「typedef」キーワードが用意されており、開発者はこれを使用して、「int」、「long」、またはユーザー定義の構造データ型などの基本的なプリミティブ型である既存のデータ型のエイリアスを作成できます。 「typedef」キーワードは新しい型を作成しません。代わりに、既存のタイプのニックネーム (またはエイリアス) を作成します。 「typedef」を使用すると、コードが読みやすくなり、長い型名を繰り返し入力するのに必要なエネルギーと時間を節約できます。ただし、プログラム内で使用しすぎると、特に大規模なプロジェクトでコードが混乱する可能性があります。この記事では、「typedef」で構造体を定義する方法、コード行の削減にどのように役立つか、「typedef」の使用法などについて、実例を交えて説明します。

C++ の Typedef 構造体を理解する

C++ では、「typedef」は、プログラム全体でエイリアスとして機能する既存の組み込みデータ型、ポインター、構造体、およびユーザー定義データ型の新しい名前を提供するキーワードです。簡単に言うと、組み込みまたはユーザー定義のデータ型にわかりやすい名前を付けます。また、コード行を減らし、複雑なデータ型を簡素化するのにも役立ちます。ただし、前述したように、「typedef」を使いすぎると混乱を招く可能性があるため、推奨されません。

struct は、構造体の定義と初期化に使用されるもう 1 つのキーワードです。 C++ の構造は、開発者がさまざまなデータ型や変数を 1 か所にグループ化できるようにする複合データ型宣言です。







C++ では、「struct」と「typedef struct」は同じです。 「typedef struct」と「struct」は同じように機能するため、実質的な違いはありません。クラス、列挙型、共用体、または構造体が C++ で宣言または定義される場合は、デフォルトで「typedef」であるため、それらを暗黙的に「typedef」として定義する必要はありません。



C++ の Typedef 構造体の構文

「typedef」構造体の構文は、「typedef」を持たない構造体と同じです。必要なのは、「struct」キーワードを使用した「typedef」の明示的な定義だけです。完全な構文は次のとおりです。



typedef 構造体 {
< データ・タイプ > < 変数1 > ;
< データ・タイプ > < 変数2 > ;
< データ・タイプ > < 変数3 > ;
} < 構造体名 > ;

を使用するだけで構造体が定義されます。この構造タイプの複数の変数を定義できます。次の定義を参照してください。





< 構造体名 > 変数4、変数5、変数6 ;

ここで、C++ の「typedef」構造体をより明確に理解するために、いくつかの例を見てみましょう。

例 1:

C++ の「typedef」構造体の最初の例では、簡単なプログラムを取り上げて、それが C++ プロジェクトでどのように定義され、使用されるかを説明します。次のコードを参照してから説明に進みましょう。



#include
を使用して 名前空間 標準 ;
構造体 10進数 {
整数 12月1日 ;
整数 12月2日 ; } ;
整数 主要 ( ) {
構造体 10進数のd ;
d. 12月1日 = 10 ;
d. 12月2日 = 23 ;
コート << d. 12月1日 << 終わり ;
コート << d. 12月2日 << 終わり ;
戻る 0 ; }

この C++ コードでは、10 進構造体を定義し、main 関数内でのその使用法を示します。コードの各行を見てみましょう。

プログラムはまず、「#include 」などの必要なヘッダー ファイルをインクルードし、入出力操作に「std」名前空間を使用して、「std」名前空間をスコープ内に組み込みます。その後、「10進数」という名前の構造体が定義されます。この構造体には 2 つのメンバー「dec1」と「dec2」があり、どちらも「int」型です。

main 関数では、10 進構造体のインスタンスが作成されます。これは「d;」を使用して行われます。宣言は10進数。この構造体には 2 つのメンバーがあるため、「d」インスタンスを使用して両方にアクセスします。次に、「d.dec1」と「d.dec2」の定義を使用して、「dec1」と「dec2」の値にそれぞれ 10 と 23 が割り当てられます。最後に、「dec1」と「dec2」の値が「cout」を使用してコンソールに出力されます。プログラムは次の出力を提供します。

指定された出力スナップショットは、main 関数内で 2 つの 10 進数を格納および操作するために、「10 進数」という名前の単純な「typedef」構造体がどのように使用されるかを示しています。 「typedef」構造体を使用すると、C++ プログラム内の関連データをより適切に編成および管理できます。

例 2:

前に説明した例では、構造内に 1 種類のデータのみが指定されています。ここで、構造内に複数のタイプのデータを定義し、「typedef」がコード行を減らし、複雑なコードを簡素化するのにどのように役立つかを見てみましょう。参考までにコードを以下に示します。

#include
を使用して 名前空間 標準 ;
typedef 構造体 辞書 {
整数 ID ;
文字列名 ;
長さ ロールナム ;
チャー クラス名 ;
} 辞書 ;
整数 主要 ( )
{
辞書データ ;
データ。 ID = 二十 ;
データ。 名前 = 「カルスム」 ;
データ。 ロールナム = 123456789 ;
データ。 クラス名 = 「D」 ;
コート << 「候補者のIDは=」 << データ。 ID << 終わり ;
コート << 「候補者の名前は=」 << データ。 名前 << 終わり ;
コート << '候補者のロールナンバーは = ' << データ。 ロールナム << 終わり ;
コート << 「候補者のクラス名は=」 << データ。 クラス名 << 終わり ;
戻る 0 ;
}

前の例と同様に、このプログラムも「#include 」などの必要なヘッダー ファイルを開始し、「std」名前空間を使用して基本的な入出力操作を実行します。その後、辞書構造が 4 つのメンバー (id、name、rollnum、classname) で定義されます。 「typedef」キーワードは、この構造体の「dict」エイリアスを作成します。このエイリアスを使用すると、構造体を構造体辞書の代わりに単に「dict」として参照できるようになります。

さて、main関数では、まず「dict」という名前の構造辞書のインスタンスを「dict」のエイリアスとなるデータとして定義します。値は、次のステートメントを使用して構造体の各メンバーに割り当てられます。

データ。 ID = 二十 ;
データ。 名前 = 「カルスム」 ;
データ。 ロールナム = 123456789 ;
データ。 クラス名 = 「D」 ;

ご覧のとおり、これらの値は int、string、long、char というさまざまな型になります。 「cout」ステートメントを使用して、定義されたすべての値をコンソールに出力します。次のスナップショットでプログラムの出力を見てみましょう。

出力スクリーンショットは、複数のデータ型を含む構造体で「typedef」を使用して構造体のエイリアスを作成する様子を明確に示しています。これにより、完全な C++ プログラム内の構造体を操作するための、より簡潔で読みやすく、より簡単な方法が提供されます。

結論

C++ の「typedef」構造体を要約すると、「typedef」は C++ でプリミティブ、組み込み、またはユーザー定義のデータ型のエイリアスを作成するために使用されるキーワードです。 「struct」キーワードと組み合わせると、「typedef」はコードの簡潔さと明瞭さを強化する強力なツールです。 「typedef」定義は通常、コード行とメモリ領域を削減するのに役立ちます。ただし、「typedef」を多用しすぎると、曖昧さが生じる可能性があるため、短いプログラムでも長いプログラムでも、複雑なプロジェクトでもお勧めできません。この記事では、C++ プログラムにおける「typedef」の仕組み、実装、使用法を理解するために、簡単な例を使用して「typedef」構造体について詳しく説明しました。