分类: 嵌入式
2014-06-11 17:27:31
自动转换 自动转换发生同数据类型量混合运算时由编译系统自动完成自动转换遵循下规则: 1.若参与运算量类型同则先转换成同类型进行运算 2.转换按数据长度增加方向进行保证精度降低int型和long型运算时先把int量转成long型再进行运算 3.所有浮点运算都双精度进行即使仅含float单精度量运算表达式也要先转换成double型再作运算 4.char型和short型参与运算时必须先转换成int型 5.赋值运算赋值号两边量数据类型同时 赋值号右边量类型转换左边量类型 右边量数据类型长度左边长时丢失部分数据样会降低精度 丢失部分按四舍五入向前舍入 强制类型转换 强制类型转换通过类型转换运算来实现其般形式: (类型说明符) (表达式) 其功能把表达式运算结强制转换成类型说明符所表示类型
例: (float) a 把a转换实型(int)(x+y) 把x+y结转换整型使用
强制转换时应注意下问题: 1.类型说明符和表达式都必须加括号(单变量加括号)把(int)(x+y)写成(int)x+y则成了把x转换成int型之再与y相加了 2.无论强制转换或自动转换都只了本次运算需要而对变量?数据长度进行临时性转换而改变数据说明时对该变量定义类型 具体下: char short->int->usigned->long->double float->double