The typedef je klíčové slovo, které se používá k poskytnutí existujících datových typů novým názvem. Klíčové slovo C typedef se používá k předefinování názvu již existujících datových typů.
Když je obtížné používat názvy datových typů v programech, použije se typedef s uživatelsky definovanými datovými typy, které se chovají podobně jako definování aliasu pro příkazy.
Syntaxe typu C
typedef existing_name alias_name;>
Po této deklaraci můžeme použít alias_name jako by to bylo skutečné existující_jméno v programu C.
Příklad typedef v C
typedef long long ll;>
Níže je uveden program C pro ilustraci použití typedef.
C
linuxový souborový systém
// 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;> }> |
>
>Výstup
20>
Použití typedef v C
Níže jsou uvedena některá běžná použití definice typu v programování C:
- Klíčové slovo typedef dává existujícímu datovému typu smysluplný název, který pomáhá ostatním uživatelům snadněji porozumět programu.
- Lze jej použít se strukturami pro zvýšení čitelnosti kódu a nemusíme opakovaně zadávat struct.
- Klíčové slovo typedef lze také použít s ukazateli k deklaraci více ukazatelů v jednom příkazu.
- Lze jej použít s poli k deklaraci libovolného počtu proměnných.
1. typedef struct
typedef lze také použít se strukturami v programovacím jazyce C. Lze vytvořit nový datový typ a použít jej k definování proměnné struktury.
Příklad 1: Použití typedef k definování názvu struktury
C
// 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;> }> |
>
>Výstup
Name: Kamlesh Joshi Branch: Computer Science And Engineering ID_no: 108>
2. typedef s ukazateli
typedef lze také použít s ukazateli, protože dává ukazatelům alias. Typedef je velmi efektivní při deklarování více ukazatelů v jednom příkazu, protože ukazatele se v jednoduché deklaraci vážou doprava.
Příklad:
typedef int* Int_ptr; Int_ptr var, var1, var2;>
Ve výše uvedeném příkazu jsou var, var1 a var2 deklarovány jako ukazatele typu int, což nám pomáhá deklarovat více čísel ukazatelů v jednom příkazu.
Příklad 2: Použití typedef k definování názvu pro typ ukazatele.
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;> }> |
>
>Výstup
Value of var is 20>
3. typedef s Array
typedef lze také použít s polem ke zvýšení jejich počtu.
Příklad:
typedef int arr[20]>
Zde je arr alias pro pole 20 celočíselných prvků.
// it's same as Arr[20], two-Arr[20][23]; arr Arr, two-Arr[23];>
Příklad 3: Použití typedef k definování aliasu pro Array.
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;> }> |
>
>Výstup
typedef using an array 10 20 30 40>
C typedef vs #define
Následují hlavní rozdíl mezi typedef a #define v C:
- #define je také schopen definovat aliasy pro hodnoty, například můžete definovat 1 jako JEDEN, 3.14 jako PI atd. Typedef je omezen na přidělování symbolických jmen pouze typům.
- Preprocesory interpretují příkazy #define, zatímco kompilátor interpretuje příkazy typedef.
- Na konci #define by neměl být středník, ale středník na konci typedef.
- Na rozdíl od #define, typedef ve skutečnosti definuje nový typ zkopírováním a vložením hodnot definice.
Níže je uveden program C pro implementaci #define:
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; }> |
>
>Výstup
0 1 2>
Nejčastější dotazy k typedef v C
1. Co je typedef v C?
Příkaz C typedef definuje alias nebo přezdívku pro již existující datový typ.
2. Co je to typedef struct?
Struktura typedef je příkaz používaný k definování aliasu pro datový typ struktury.
3. Co je typedef enum?
Výčet typedef se používá k definování aliasu pro datový typ výčtu.