News:

Build a stunning handcrafted website with IT Acumens

Main Menu

Typecasting in C

Started by thiruvasagamani, Aug 15, 2008, 11:04 AM

Previous topic - Next topic

thiruvasagamani

C is one of the few languages to allow coercion, that is forcing one variable of one type to be another type. C allows this using the cast operator ().
So:


  int integernumber;
  float floatnumber=9.87;
  integernumber=(int)floatnumber;


assigns 9 (the fractional part is thrown away) to integernumber.


And:


int integernumber=10;
  float floatnumber;
  floatnumber=(float)integernumber;


assigns 10.0 to floatnumber.

Coercion can be used with any of the simple data types including char, so:


                 int integernumber;
char letter='A';
                 integernumber=(int)letter;


assigns 65 (the ASCII code for `A') to integernumber.

Some typecasting is done automatically -- this is mainly with integer compatibility.

A good rule to follow is: If in doubt cast.

Another use is the make sure division behaves as requested: If we have two integers internumber and anotherint and we want the answer to be a float then :


e.g.

floatnumber =
       (float) internumber / (float) anotherint;


ensures floating point division.
Thiruvasakamani Karnan