logo

Cのtypedef

typedef は、既存のデータ型に新しい名前を付けるために使用されるキーワードです。 C の typedef キーワードは、既存のデータ型の名前を再定義するために使用されます。

プログラム内でデータ型の名前を使用するのが難しくなった場合、typedef はユーザー定義のデータ型とともに使用されます。これは、コマンドのエイリアスを定義するのと同様に動作します。



C の typedef 構文

 typedef existing_name alias_name;>

この宣言の後、次を使用できます。 エイリアス名 まるで本物であるかのように 既存の名前 入出力Cプログラム。

C での typedef の例

 typedef long long ll;>

以下は、typedef の使用方法を示す C プログラムです。

C




Javaのインスタンス





// C program to implement typedef> #include> // defining an alias using typedef> typedef> long> long> ll;> // Driver code> int> main()> {> >// using typedef name to declare variable> >ll var = 20;> >printf>(>'%ld'>, var);> >return> 0;> }>

>

>

出力

20>

C での typedef の使用

C プログラミングにおける typedef の一般的な使用法をいくつか次に示します。

  • typedef キーワードは、他のユーザーがプログラムを理解しやすくするために、既存のデータ型に意味のある名前を付けます。
  • 構造体とともに使用すると、コードの可読性が向上し、構造体を繰り返し入力する必要がなくなります。
  • typedef キーワードをポインターとともに使用して、単一のステートメントで複数のポインターを宣言することもできます。
  • 配列とともに使用して、任意の数の変数を宣言できます。

1.typedef構造体

typedef は、C プログラミング言語の構造体でも使用できます。新しいデータ型を作成して、構造体変数の定義に使用できます。

例 1: typedef を使用して構造体の名前を定義する

C




ソートされた配列リストJava
// C program to implement> // typedef with structures> #include> #include> // using typedef to define an alias for structure> typedef> struct> students {> >char> name[50];> >char> branch[50];> >int> ID_no;> } stu;> // Driver code> int> main()> {> >stu st;> >strcpy>(st.name,>'Kamlesh Joshi'>);> >strcpy>(st.branch,>'Computer Science And Engineering'>);> >st.ID_no = 108;> >printf>(>'Name: %s '>, st.name);> >printf>(>'Branch: %s '>, st.branch);> >printf>(>'ID_no: %d '>, st.ID_no);> >return> 0;> }>

>

>

出力

Name: Kamlesh Joshi Branch: Computer Science And Engineering ID_no: 108>

2. ポインタを使用した typedef

typedef はポインタに別名を与えるため、ポインタとともに使用することもできます。ポインターは単純な宣言の右側にバインドされるため、Typedef は 1 つのステートメントで複数のポインターを宣言するときに非常に効率的です。

例:

typedef int* Int_ptr; Int_ptr var, var1, var2;>

上記のステートメントでは、var、var1、および var2 が int 型のポインターとして宣言されているため、1 つのステートメントで複数のポインターを宣言するのに役立ちます。

例 2: typedef を使用してポインター型の名前を定義します。

C




// C program to implement> // typedef with pointers> #include> typedef> int>* ptr;> // Driver code> int> main()> {> >ptr var;> >*var = 20;> >printf>(>'Value of var is %d'>, *var);> >return> 0;> }>

>

>

出力

アンドロイドのイースターエッグとは何ですか
Value of var is 20>

3. 配列を使用した typedef

typedef を配列とともに使用して、その数を増やすこともできます。

例:

typedef int arr[20]>

ここで、arr は 20 個の整数要素の配列のエイリアスです。

// it's same as Arr[20], two-Arr[20][23]; arr Arr, two-Arr[23];>

例 3: typedef を使用して配列のエイリアスを定義します。

C




// C program to implement typedef with array> #include> typedef> int> Arr[4];> // Driver code> int> main()> {> >Arr temp = { 10, 20, 30, 40 };> >printf>(>'typedef using an array '>);> >for> (>int> i = 0; i <4; i++) {> >printf>(>'%d '>, temp[i]);> >}> >return> 0;> }>

データ構造内の構造
>

>

出力

typedef using an array 10 20 30 40>

C の typedef と #define

C の typedef と #define の主な違いは次のとおりです。

  1. #define は、値のエイリアスも定義できます。たとえば、1 を ONE、3.14 を PI などに定義できます。Typedef は、型にシンボリック名を与えることのみに制限されています。
  2. プリプロセッサは #define ステートメントを解釈し、コンパイラーは typedef ステートメントを解釈します。
  3. #define の末尾にはセミコロンはありませんが、typedef の末尾にはセミコロンがあります。
  4. #define とは対照的に、typedef は定義値をコピーして貼り付けることによって実際に新しい型を定義します。

以下は #define を実装する C プログラムです。

C




// C program to implement #define> #include> // macro definition> #define LIMIT 3> // Driver code> int> main()> {> >for> (>int> i = 0; i printf('%d ', i); } return 0; }>

>

Javaの配列のlen
>

出力

0 1 2>

C の typedef に関する FAQ

1. C の typedef とは何ですか?

C の typedef ステートメントは、既存のデータ型の別名またはニックネームを定義します。

2. typedef 構造体とは何ですか?

typedef struct は、構造データ型のエイリアスを定義するために使用されるステートメントです。

3. typedef enum とは何ですか?

typedef enum は、列挙データ型のエイリアスを定義するために使用されます。