の 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 の主な違いは次のとおりです。
- #define は、値のエイリアスも定義できます。たとえば、1 を ONE、3.14 を PI などに定義できます。Typedef は、型にシンボリック名を与えることのみに制限されています。
- プリプロセッサは #define ステートメントを解釈し、コンパイラーは typedef ステートメントを解釈します。
- #define の末尾にはセミコロンはありませんが、typedef の末尾にはセミコロンがあります。
- #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 は、列挙データ型のエイリアスを定義するために使用されます。