logo

C typedef

The typedef este un cuvânt cheie care este folosit pentru a furniza tipurilor de date existente un nume nou. Cuvântul cheie C typedef este folosit pentru a redefini numele tipurilor de date deja existente.

Când numele tipurilor de date devin dificil de utilizat în programe, typedef este utilizat cu tipuri de date definite de utilizator, care se comportă în mod similar cu definirea unui alias pentru comenzi.



Sintaxă C typedef

 typedef existing_name alias_name;>

După această declarație, putem folosi porecla de parcă ar fi adevăratul nume_existent în programul C.

Exemplu de typedef în C

 typedef long long ll;>

Mai jos este programul C pentru a ilustra cum se utilizează typedef.

C




tipuri de calculator





// 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;> }>

>

>

Ieșire

20>

Utilizarea typedef în C

Următoarele sunt câteva utilizări comune ale typedef în programarea C:

  • Cuvântul cheie typedef dă un nume semnificativ tipului de date existent, ceea ce îi ajută pe alți utilizatori să înțeleagă mai ușor programul.
  • Poate fi folosit cu structuri pentru a crește lizibilitatea codului și nu trebuie să introducem struct în mod repetat.
  • Cuvântul cheie typedef poate fi folosit și cu pointeri pentru a declara mai mulți pointeri într-o singură instrucțiune.
  • Poate fi folosit cu matrice pentru a declara orice număr de variabile.

1. typedef struct

typedef poate fi folosit și cu structuri în limbajul de programare C. Un nou tip de date poate fi creat și utilizat pentru a defini variabila de structură.

Exemplul 1: Utilizarea typedef pentru a defini un nume pentru o structură

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;> }>

>

>

Ieșire

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

2. typedef cu Pointers

typedef poate fi folosit și cu pointeri, deoarece dă un nume de alias pentru pointeri. Typedef este foarte eficient în timp ce declară mai mulți pointeri într-o singură instrucțiune, deoarece pointerii se leagă la dreapta pe declarația simplă.

Exemplu:

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

În instrucțiunea de mai sus, var, var1 și var2 sunt declarați ca pointeri de tip int, ceea ce ne ajută să declarăm mai multe numere de pointeri într-o singură instrucțiune.

Exemplul 2: Utilizarea typedef pentru a defini un nume pentru tipul de indicator.

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;> }>

>

>

Ieșire

Value of var is 20>

3. typedef cu Array

typedef poate fi folosit și cu o matrice pentru a le crește numărul.

Exemplu:

typedef int arr[20]>

Aici, arr este un alias pentru o matrice de 20 de elemente întregi.

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

Exemplul 3: Utilizarea typedef pentru a defini un alias pentru 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;> }>

>

>

Ieșire

typedef using an array 10 20 30 40>

C typedef vs #define

Următoarele sunt diferența majoră dintre typedef și #define în C:

  1. #define este capabil să definească aliasuri și pentru valori, de exemplu, puteți defini 1 ca ONE, 3.14 ca PI etc. Typedef se limitează la a da nume simbolice numai tipurilor.
  2. Preprocesoarele interpretează instrucțiunile #define, în timp ce compilatorul interpretează instrucțiunile typedef.
  3. Nu ar trebui să existe punct și virgulă la sfârșitul lui #define, ci un punct și virgulă la sfârșitul lui typedef.
  4. Spre deosebire de #define, typedef va defini de fapt un nou tip prin copierea și lipirea valorilor definiției.

Mai jos este programul C pentru implementarea #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; }>

>

>

Ieșire

0 1 2>

Întrebări frecvente despre typedef în C

1. Ce este typedef în C?

Declarația C typedef definește un alias sau o poreclă pentru tipul de date deja existent.

2. Ce este typedef struct?

Structura typedef este instrucțiunea utilizată pentru a defini un alias pentru tipul de date de structură.

3. Ce este typedef enum?

Typedef enum este folosit pentru a defini aliasul pentru tipul de date de enumerare.