Articles

C-Type Casting

hirdetések

konvertálása egy datatype egy másik ismert típusú casting vagy, Típus-átalakítás. Például, ha egy “hosszú” értéket egy egyszerű egész számba szeretne tárolni, akkor beírhatja a cast “long” – ot ” int ” – re. Lehet konvertálni az értékek egyik típusból a másikba kifejezetten használ a leadott üzemeltető a következők:

(type_name) expression

vegyük a következő példát, ahol a szereplők üzemeltető okozza, hogy a hadosztály egy egész változó egy másik kell végezni, mint egy lebegőpontos művelet −

#include <stdio.h>main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean );}

Ha a fenti kód össze, majd kivégezték, ez adja ki a következő eredmény −

Value of mean : 3.400000

Meg kell jegyezni, hogy a leadott üzemeltető elsőbbséget részlege, így az érték az az összeg első konvertált típus dupla pedig végre kap osztva gróf így kettős értéket.

A Típuskonverziók implicit módon hajthatók végre, amelyet a fordító automatikusan hajt végre, vagy kifejezetten meghatározható a cast operátor használatával. Jó programozási gyakorlatnak tekinthető az öntött operátor használata, amikor a típuskonverziók szükségesek.

Egész Promóció

Egész promóció az a folyamat, amely értéke integer típusú “kisebb”, mint az int vagy unsigned int át vagy int vagy unsigned int. Vegyünk egy példát egy egész karakter hozzáadására –

#include <stdio.h>main() { int i = 17; char c = 'c'; /* ascii value is 99 */ int sum; sum = i + c; printf("Value of sum : %d\n", sum );}

a fenti kód összeállításakor és végrehajtásakor a következő eredményt hozza létre −

Value of sum : 116

itt az összeg értéke 116, mivel a fordító egész promóciót végez, és a ” c ” értékét ASCII-re konvertálja a tényleges kiegészítés végrehajtása előtt.

szokásos aritmetikai konverzió

a szokásos aritmetikai konverziók implicit módon kerülnek végrehajtásra, hogy értékeiket közös típusra dobják. A fordító először egész promóciót hajt végre; ha az operandusok még különböző típusú, akkor alakítja át, hogy az a típus, aki úgy tűnik, legmagasabb a következő hierarchia −

A szokásos aritmetikai konverziók nem végzett feladat szereplők, sem a logikai operátorok && és ||. Vegyük a következő példát, hogy megértsük a koncepció −

#include <stdio.h>main() { int i = 17; char c = 'c'; /* ascii value is 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum );}

Ha a fenti kód össze, majd kivégezték, ez adja ki a következő eredmény −

Value of sum : 116.000000

Itt, az egyszerű megérteni, hogy az első c kap át egész, de ahogy a végső érték duplája, szokásos aritmetikai átalakítás vonatkozik, ezért a fordító átalakítja, illetve c a ‘float’ s hozzáteszi, engedve a ‘float’ az eredmény.

Reklámok