C typdef
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
// 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.