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.
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ä
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 :-
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 :-
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:
Sisäänrakennetut tyypinvalintafunktiot C-kielessä:
C-kielessä on monia sisäänrakennettuja tyypinvalintafunktioita, jotka suorittavat tietotyypin muuntamisen tyypistä toiseen.
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.