The typedef on avainsana, jota käytetään antamaan olemassa oleville tietotyypeille uusi nimi. C typedef -avainsanaa käytetään määrittämään uudelleen jo olemassa olevien tietotyyppien nimet.
Kun tietotyyppien nimiä on vaikea käyttää ohjelmissa, typedefiä käytetään käyttäjän määrittämien tietotyyppien kanssa, jotka käyttäytyvät samalla tavalla kuin komentojen aliaksen määrittäminen.
C typedef -syntaksi
typedef existing_name alias_name;>
Tämän ilmoituksen jälkeen voimme käyttää alias nimi ikään kuin se olisi todellinen olemassa oleva_nimi ulos C-ohjelmassa.
Esimerkki typedefistä C:ssä
typedef long long ll;>
Alla on C-ohjelma, joka havainnollistaa typedefin käyttöä.
C
automaattinen teoria
// 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;> }> |
>
>Lähtö
20>
Typedefin käyttö C:ssä
Seuraavassa on joitain typedefin yleisiä käyttötapoja C-ohjelmoinnissa:
- Typedef-avainsana antaa olemassa olevalle tietotyypille merkityksellisen nimen, joka auttaa muita käyttäjiä ymmärtämään ohjelmaa helpommin.
- Sitä voidaan käyttää rakenteiden kanssa koodin luettavuuden parantamiseksi, eikä meidän tarvitse kirjoittaa structia toistuvasti.
- Typedef-avainsanaa voidaan käyttää myös osoittimien kanssa useiden osoittimien ilmoittamiseen yhdessä käskyssä.
- Sitä voidaan käyttää taulukoiden kanssa ilmoittamaan minkä tahansa määrän muuttujia.
1. typedef struct
typedefiä voidaan käyttää myös C-ohjelmointikielen rakenteiden kanssa. Uusi tietotyyppi voidaan luoda ja käyttää rakennemuuttujan määrittämiseen.
Esimerkki 1: Typedef:n käyttö rakenteen nimen määrittämiseen
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;> }> |
>
>Lähtö
Name: Kamlesh Joshi Branch: Computer Science And Engineering ID_no: 108>
2. typedef osoittimilla
typedefiä voidaan käyttää myös osoittimien kanssa, koska se antaa osoittimille aliaksenimen. Typedef on erittäin tehokas, kun se ilmoittaa useita osoittimia yhdessä käskyssä, koska osoittimet sitoutuvat yksinkertaisen ilmoituksen oikealle puolelle.
Esimerkki:
typedef int* Int_ptr; Int_ptr var, var1, var2;>
Yllä olevassa käskyssä var, var1 ja var2 on ilmoitettu int-tyypin osoittimina, mikä auttaa meitä ilmoittamaan useita osoittimia yhdessä käskyssä.
Esimerkki 2: Typedef:n käyttäminen osoitintyypin nimen määrittämiseen.
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;> }> |
>
>Lähtö
Value of var is 20>
3. typedef Arraylla
typedefiä voidaan käyttää myös taulukon kanssa lisäämään niiden määrää.
Esimerkki:
typedef int arr[20]>
Tässä arr on alias 20 kokonaislukuelementin joukolle.
// it's same as Arr[20], two-Arr[20][23]; arr Arr, two-Arr[23];>
Esimerkki 3: Typedef:n käyttäminen aliaksen määrittämiseen Arraylle.
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;> }> |
>
>Lähtö
typedef using an array 10 20 30 40>
C typedef vs #define
Seuraavat ovat tärkeimmät erot typedefin ja #definen välillä C:ssä:
- #define pystyy määrittelemään arvoille myös aliaksia, esimerkiksi voit määrittää 1:ksi ONE, 3.14 PI:ksi jne. Typedef rajoittuu antamaan vain symbolisia nimiä tyypeille.
- Esikäsittelijät tulkitsevat #define-lauseita, kun taas kääntäjä tulkitsee typedef-lauseita.
- Ei saa olla puolipisteen #define lopussa, vaan puolipiste typedef:n lopussa.
- Toisin kuin #define, typedef itse asiassa määrittää uuden tyypin kopioimalla ja liittämällä määritelmän arvot.
Alla on C-ohjelma #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; }> |
>
>Lähtö
0 1 2>
Usein kysytyt kysymykset typedefistä C-kielellä
1. Mikä on typedef C:ssä?
C typedef -käsky määrittää aliaksen tai lempinimen jo olemassa olevalle tietotyypille.
2. Mikä on typedef struct?
Typedef-rakenne on käsky, jota käytetään määrittämään alias rakenteen tietotyypille.
3. Mikä typedef enum on?
Typedef enum -tunnusta käytetään määrittämään luettelotietotyypin alias.