Típusöntés a C nyelvben

A típusöntés az egyik adattípusból egy változót egy másik adattípusba konvertál. Ha például egy long értéket szeretnénk egy egyszerű egész számba tárolni, akkor a long értéket typecastolhatjuk int értékre. Az értékeket egyik típusból a másikba explicit módon konvertálhatja a cast operátor segítségével. A c nyelvben kétféle típusváltás létezik, az implicit konverzió és az explicit konverzió. Ebben a cikkben a típusöntés és a típuskonverziók közötti különbséget is megismerjük.

Az új adattípust a változó neve vagy értéke előtt zárójelben kell megemlíteni, amelyet tipizálni kell.

C típusöntési példaprogram:

Az alábbi C programban a 7/5 önmagában 1 egész szám értéket ad.
Ezért a típusöntést az osztás előtt végezzük, hogy a float érték (1.4) megmaradjon.

1 #include <stdio.h>
2 int main ()
3 {
4 float x;
5 x = (float) 7/5;
6 printf(“%f”,x);
7 }

Kimenet:
1.400000

Az adott típusú kifejezés egy másik típusba való átalakítását nevezzük típusöntésnek. a típusöntés inkább a c nyelvű programozásban használatos.

Itt a legjobb gyakorlat az alacsonyabb adattípus magasabb adattípusba való átalakítása az adatvesztés elkerülése érdekében.

Az adatok csonkolódni fognak, ha a magasabb adattípust alacsonyabbra alakítjuk át. Például, ha egy lebegőszámot int-be konvertálunk, a tizedesvessző után lévő adatok elvesznek.

A c nyelvben kétféle típusátvitel létezik.

A típusátvitel típusai a C-ben

S.Nem Típusöntés típusai a C programozásban
1 Implicit konverzió
2 Explicit konverzió

Implicit konverzió

Az implicit konverzió nem igényel semmilyen operátort a konvertáláshoz. Ezek automatikusan végrehajtódnak, amikor egy értéket egy kompatibilis típusba másolunk a programban.

Itt az a értékét int-ről double-ra léptettük át, és nem kellett semmilyen típusbeöntési operátort megadnunk. Ezt nevezzük standard konverziónak.

Példa :-

1 #include<stdio.h>
2 #include<conio.h>
3 void main()
4 {
5 int i=20;
6 double p;
7 clrscr();
8
9 p=i; // implicit konverzió
10
11 printf(“implicit value is %d”,p);
12
13 getch();
14 }

Kimenet:-implicit érték 20.

Explicit konverzió

A C nyelvben sok konverzió, különösen azok, amelyek az érték eltérő értelmezését feltételezik, explicit konverziót igényelnek. Az explicit típuskonverzióra már láttunk két jelölést.

Ezeket nem automatikusan hajtjuk végre, amikor egy értéket egy kompatibilis típusba másolunk a programban.

Példa :-

1 #include<stdio.h>
2 #include<conio.h>
3 void main()
4 {
5 int i=20;
6 short p;
7 clrscr();
8
9 p = (short) i; // Explicit konverzió
10
11 printf(“Explicit value is %d”,p);
12
13 getch();
14 }

Kimenet:
Az explicit érték 20.

Szokásos aritmetikai konverzió

A szokásos aritmetikai konverziók implicit módon történnek, hogy értékeiket egy közös típusba öntsék, a C azt a szabályt alkalmazza, hogy minden kifejezésben, kivéve a hozzárendeléseket, minden implicit típuskonverzió alacsonyabb méretű típusból magasabb méretű típusba történik, ahogy az alább látható:

Típusöntés a C nyelvben

Beépített típusöntő függvények a C nyelvben:

A C nyelvben számos beépített típusöntő függvény áll rendelkezésre, amelyek az adattípusok egyik típusból a másikba történő átalakítását végzik.

.

S.No Typecast Function Description
1 atof() Convert string to Float
2 atoi() Convert string to int
3 atol() Convert string to. long
4 itoa() Convert int to string
5 ltoa() Convert long to string

A közelmúltban felmérést készítettünk különböző programozókról, akik elérhetőek a google plus közösségi médiában. Felmérést végeztünk a c nyelven történő típusöntésről.

Különbség a típusöntés és a típuskonverzió között

Amikor az egyik adattípust egy másikba kell konvertálni, két kifejezés jut eszünkbe: “typecasting” és “type conversion”. Amikor a két típus kompatibilis egymással, akkor az egyik típus átalakítását a másikba automatikusan elvégzi a fordító, ami hideg típuskonverzió, de emlékszik, hogy egy nagy adattípust tárolhatunk a másikba, például nem tárolhatunk egy float-t az int-be, mert a float nagyobb, mint az int. míg a typecastingot kifejezetten a programozónak kell elvégeznie.

VERZŐDÉS ALAPJA TÍPUSÁLLÍTÁS TÍPUSÁLLÍTÁS
Meghatározás Amikor a felhasználó az egyik adattípust át tudja alakítani a másikba, akkor ezt nevezzük tipizálásnak. Típuskonvertálásnak nevezzük azt, amikor az egyik adattípust automatikusan átalakítjuk egy másik adattípussá.
Megvalósul Két “inkompatibilis” adattípuson. Kizárólag akkor valósul meg, ha két adattípus “kompatibilis”.
Operátor Egy adattípus másik adattípusba való átviteléhez szükséges egy ‘()’ átviteli operátor. Nincs szükség operátorra.
Elvégrehajtva A programtervezés során történik. Kifejezetten a fordítás során történik.
Konverzió típusa Szűkítő konverzió. Szélesítő konverzió.
Példa int x;
byte y;


y= (byte) x;
int x=3;
float y;
y=a; // az y=3.000.

érték.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.