3.5 使用数据类型
编写程序时,应注意合理选择所需的变量及其类型。通过,用int或float类型便是数字,char类型表示字符。在使用变量之前必须先声明,并选择有意义的变量名。初始化变量应使用与变量类型匹配的常数类型。
int apples = 3; /*正确*/
int oranges = 3.0; /*不好的形式*/
C在检查类型匹配方面不太严格。C编译器甚至允许二次初始化,但在激活了较高级别警告时,会给出警告。最好不要养成这样的习惯。
把一个类型的数值初始化给不同类型的变量时,编译器会把值转换为与变量匹配的类型,这将导致部分数据丢失。例如,下面的初始化:
int cost = 12.99; /*用double类型的值初始化int类型的变量*/
float pi = 3.1415926536; /*用double类型的值初始化float类型的变量*/
C编译器把浮点数转换成整数时,会直接丢弃(截断)小数部分,而不进行四舍五入。
把双精度浮点数转换成单精度浮点数时会损失一些精度,因为C只保证了float类型前6位的精度。编译器对这样的初始化可能给出警告。
许多程序员和公司内部都有系统化的命名约定,在变量名中体现其类型。例如,
用i_前缀表示int类型;
us_前缀表示unsigned short类型。