HP 3000 Manuals

Ch 4. Type Conversions [ HP C/iX Reference Manual ] MPE/iX 5.0 Documentation


HP C/iX Reference Manual

Chapter 4  Type Conversions 

The use of different types of data within C programs creates a need for
data type conversions.  For example, some circumstances that may require
a type conversion are when a program assigns one variable to another,
when it passes arguments to functions, or when it tries to evaluate an
expression containing operands of different types.  C performs data
conversions in these situations. 

   *   Assignment--Assignment operations cause some implicit type
       conversions.  This makes arithmetic operations easier to write.
       Assigning an integer type variable to a floating type variable
       causes an automatic conversion from the integer type to the
       floating type.

   *   Function call--Arguments to functions are implicitly converted
       following a number of "widening" conversions.  For example,
       characters are automatically converted to integers when passed as
       function arguments in the absence of a prototype.

   *   Normal conversions--In preparation for arithmetic or logical
       operations, the compiler automatically converts from one type to
       another.  Also, if two operands are not of the same type, one or
       both may be converted to a common type before the operation is
       performed.

   *   Casting--You can explicitly force a conversion from one type to
       another using a cast operation.

   *   Returned values--Values returned from a function are automatically
       converted to the function's type.  For example, if a function was
       declared to return a double and the return statement has an
       integer expression, the integer value is automatically converted
       to a double.

Conversions from one type to another do not always cause an actual
physical change in representation.  Converting a 16-bit short int into a
64-bit double causes a representational change.  Converting a 16-bit
signed short int to a 16-bit unsigned short int does not cause a
representational change.



MPE/iX 5.0 Documentation