Tyypin valu C-kielessä

Tyypin valu on tapa muuntaa muuttuja yhdestä tietotyypistä toiseen tietotyyppiin. Jos esimerkiksi haluat tallentaa pitkän arvon yksinkertaiseen kokonaislukuun, voit typecastata longin arvoksi int. Voit muuntaa arvot yhdestä tyypistä toiseen eksplisiittisesti käyttämällä cast-operaattoria. C-kielessä on kahdenlaisia tyypinvalintoja, jotka ovat implisiittiset muunnokset ja eksplisiittiset muunnokset. Tässä artikkelissa opimme myös tyypinvalinnan ja tyyppimuunnosten eron.

Uusi tietotyyppi on mainittava ennen muuttujan nimeä tai suluissa olevaa arvoa, joka halutaan tyypittää.

C-tyypin valu esimerkkiohjelma:

Alhaalla olevassa C-ohjelmassa pelkkä 7/5 tuottaa kokonaisluvun arvoksi 1.
Tyypin valu tehdään siis ennen jakoa, jotta float-arvo (1.4) säilyy.

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

Output:
1.400000

Tietytyyppisen lausekkeen muuntaminen toiseksi tyypiksi tunnetaan nimellä typecasting. typecasting on enemmän käytössä c-kielisessä ohjelmoinnissa.

Tässä, On paras käytäntö muuntaa alempi tietotyyppi korkeammaksi tietotyypiksi, jotta vältetään tietojen häviäminen.

Tieto katkeaa, kun korkeampi tietotyyppi muunnetaan alemmaksi. Jos esimerkiksi float muunnetaan int:ksi, menetetään desimaalipisteen jälkeen oleva data.

C-kielessä on kahdenlaisia tyypinvalintoja.

Typecasting-tyypit C-kielessä

S.Ei Tyypinvalinnan tyypit C-ohjelmoinnissa
1 Implisiittinen muuntaminen
2 Explisiittinen konversio

Implisiittinen konversio

Implisiittiset konversiot eivät vaadi mitään operaattoria muunnetulle. Ne suoritetaan automaattisesti, kun arvo kopioidaan ohjelmassa yhteensopivaan tyyppiin.

Tässä tapauksessa a:n arvo on siirretty int:stä double:ksi, eikä meidän ole tarvinnut määritellä mitään tyyppikastausoperaattoria. Tätä kutsutaan vakiomuunnokseksi.

Esimerkki :-

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; // implisiittinen muunnos
10
11 printf(”implisiittinen arvo on %d”,p);
12
13 getch();
14 }

Output:
implisiittinen arvo on 20.

Explisiittinen muunnos

C-kielessä monet muunnokset, erityisesti sellaiset, jotka tarkoittavat arvon erilaista tulkintaa, vaativat eksplisiittisen muunnoksen. Olemme jo nähneet kaksi merkintätapaa eksplisiittiselle tyyppimuunnokselle.

Ne eivät tapahdu automaattisesti, kun arvo kopioidaan ohjelmassa yhteensopivaan tyyppiin.

Esimerkki :-

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; // Eksplisiittinen muunnos
10
11 printf(”Eksplisiittinen arvo on %d”,p);
12
13 getch();
14 }

Output:
Explicit value is 20.

Tavanomainen aritmeettinen muunnos

Tavanomaiset aritmeettiset muunnokset suoritetaan implisiittisesti niiden arvojen heittämiseksi yhteiseen tyyppiin, C käyttää sääntöä, jonka mukaan kaikissa lausekkeissa, lukuun ottamatta osoituksia, kaikki implisiittiset tyyppimuunnokset, jotka on tehty alemman kokoluokan tyypistä ylemmän kokoluokan tyyppiin, on suoritettava kuten alla on esitetty:

Tyypin valu C-kielessä

Sisäänrakennetut tyypinvalintafunktiot C-kielessä:

C-kielessä on monia sisäänrakennettuja tyypinvalintafunktioita, jotka suorittavat tietotyypin muuntamisen tyypistä toiseen.

.

S.No Typecast-funktio Kuvaus
1 atof() Muunna merkkijono Floatiksi
2 atoi() Muunnetaan merkkijono muotoon int
3 atol() Muunnetaan merkkijono muotoon long
4 itoa() Muunnetaan int merkkijonoksi
5 ltoa() Muunnetaan long merkkijonoksi

Olemme äskettäin ottaneet kyselyä eri ohjelmoijilta, jotka ovat saatavilla google plus sosiaalisessa mediassa. Teimme kyselyn tyypinvalinnasta c-kielellä.

Tyypinvalinnan ja tyyppikonversion ero

Kun on tarve muuntaa yksi tietotyyppi toiseksi, mieleemme tulee kaksi termiä ”typecasting” ja ”type conversion”. Kun kaksi tyyppiä ovat yhteensopivia keskenään, kääntäjä tekee automaattisesti yhden tyypin muuntamisen toiseksi eli kylmän tyyppimuunnoksen, mutta muistaa, että voimme tallentaa suuren tietotyypin toiseen, esimerkiksi emme voi tallentaa float-tyyppiä int-tyyppiin, koska float-tyyppi on suurempi kuin int-tyyppi, kun taas ohjelmoijan on tehtävä se nimenomaisesti.

PERUSTA VERTAILUUN TYPE CASTING TYPE CONVERSION
Määritelmä Kun käyttäjä voi konvertoida yhden tietotyypin toiseksi, niin silloin sitä kutsutaan typecastingiksi. Tyyppimuunnos on se, joka muuntaa automaattisesti yhden tietotyypin toiseksi.
Toteutetaan Toteutetaan kahdella ’yhteensopimattomalla’ tietotyypillä. Toteutetaan vain silloin, kun kaksi tietotyyppiä ovat ’yhteensopivia’.
Operaattori Tietotyypin heittämiseen toiseen tarvitaan heitto-operaattori ’()’. Operaattoria ei tarvita.
Toteutettu Toteutetaan ohjelmaa suunniteltaessa. Se tehdään eksplisiittisesti kääntämisen yhteydessä.
Muunnostyyppi Karsiva muunnos. Leventävä muunnos.
Esimerkki int x;
byte y;



y= (byte) x;
int x=3;
float y;
y=a; // arvo y:ssä=3.000.

Vastaa

Sähköpostiosoitettasi ei julkaista.