IL typedef è una parola chiave utilizzata per fornire ai tipi di dati esistenti un nuovo nome. La parola chiave C typedef viene utilizzata per ridefinire il nome dei tipi di dati già esistenti.
Quando i nomi dei tipi di dati diventano difficili da usare nei programmi, typedef viene utilizzato con tipi di dati definiti dall'utente, che si comportano in modo simile alla definizione di un alias per i comandi.
Sintassi C typedef
typedef existing_name alias_name;>
Dopo questa dichiarazione, possiamo usare il pseudonimo come se fosse reale nome_esistente nel nostro programma C.
Esempio di typedef in C
typedef long long ll;>
Di seguito è riportato il programma C per illustrare come utilizzare typedef.
C
sovraccarico del metodo
// 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;> }> |
>
>Produzione
20>
Uso di typedef in C
Di seguito sono riportati alcuni usi comuni del typedef nella programmazione C:
- La parola chiave typedef dà un nome significativo al tipo di dati esistente che aiuta gli altri utenti a comprendere più facilmente il programma.
- Può essere utilizzato con le strutture per aumentare la leggibilità del codice e non è necessario digitare struct ripetutamente.
- La parola chiave typedef può essere utilizzata anche con i puntatori per dichiarare più puntatori in una singola istruzione.
- Può essere utilizzato con gli array per dichiarare un numero qualsiasi di variabili.
1. struttura typedef
typedef può essere utilizzato anche con strutture nel linguaggio di programmazione C. È possibile creare un nuovo tipo di dati e utilizzarlo per definire la variabile di struttura.
Esempio 1: utilizzo di typedef per definire un nome per una struttura
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;> }> |
>
>Produzione
Name: Kamlesh Joshi Branch: Computer Science And Engineering ID_no: 108>
2. typedef con puntatori
typedef può essere utilizzato anche con i puntatori poiché fornisce un nome alias ai puntatori. Typedef è molto efficiente quando dichiara più puntatori in una singola istruzione perché i puntatori si legano a destra nella dichiarazione semplice.
Esempio:
typedef int* Int_ptr; Int_ptr var, var1, var2;>
Nell'istruzione precedente var, var1 e var2 sono dichiarati come puntatori di tipo int che ci aiutano a dichiarare più numeri di puntatori in una singola istruzione.
Esempio 2: utilizzo di typedef per definire un nome per il tipo di puntatore.
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;> }> |
>
>Produzione
Value of var is 20>
3. typedef con Array
typedef può anche essere utilizzato con un array per aumentarne il conteggio.
Esempio:
typedef int arr[20]>
Qui arr è un alias per un array di 20 elementi interi.
// it's same as Arr[20], two-Arr[20][23]; arr Arr, two-Arr[23];>
Esempio 3: utilizzo di typedef per definire un alias per 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;> }> |
>
>Produzione
typedef using an array 10 20 30 40>
C typedef vs #define
Di seguito sono riportate le principali differenze tra typedef e #define in C:
- #define è in grado di definire anche alias per valori, ad esempio puoi definire 1 come UNO, 3.14 come PI, ecc. Typedef si limita a fornire nomi simbolici solo ai tipi.
- I preprocessori interpretano le istruzioni #define, mentre il compilatore interpreta le istruzioni typedef.
- Non dovrebbe esserci un punto e virgola alla fine di #define, ma un punto e virgola alla fine di typedef.
- A differenza di #define, typedef definirà effettivamente un nuovo tipo copiando e incollando i valori della definizione.
Di seguito è riportato il programma C per implementare #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; }> |
>
>Produzione
0 1 2>
Domande frequenti su typedef in C
1. Cos'è typedef in C?
L'istruzione C typedef definisce un alias o un soprannome per il tipo di dati già esistente.
2. Cos'è la struttura typedef?
La struttura typedef è l'istruzione utilizzata per definire un alias per il tipo di dati della struttura.
3. Cos'è l'enumerazione typedef?
L'enumerazione typedef viene utilizzata per definire l'alias per il tipo di dati di enumerazione.