预计阅读本页时间:-
开发程序时,应当注意所需变量及其类型的选择。一般地,使用int或float类型表示数字,使用char类型表示字符。在使用变量的函数开始处声明该变量,并为它选择有意义的名字。初始化变量使用的常量应当同变量类型相匹配。例如:
int apples = 3; /* 正确 */
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
int oranges = 3.0; /* 不好的形式 */
与Pascal语言相比,C语言对待类型不匹配现象更宽容。C编译器允许二次初始化,但是会给出警告,尤其是在您激活了较高级别警告的时候。最好不要养成这样粗心的习惯。
当为某个数值类型的变量进行初始化时,如果使用了其他类型的值,C会自动对该值进行类型转换以便和变量类型相匹配,这意味着可能会丢失一部分数据。例如,考虑下列初始化语句:
int cost = 12.99; /* 把一个int变量初始化为一个double值 */
float pi = 3.1415926536; /* 把一个float变量初始化为一个double值*/
第一个声明把12赋予cost。在将浮点值转换为整数时,C简单地丢弃小数部分(截尾),而不进行四舍五入。第二个声明会损失部分精度,因为float类型只能保证前6位是精确的。编译器可能会对这样的初始化语句产生警告,但这并不是它必须做的。如果进行这样的初始化,编译程序清单3.1中的程序时您可能已遇到了这种警告。
很多程序员和组织都有系统化的变量命名规则,其中变量的名字可以表示它的类型。例如:使用i_前缀表示int变量,使用us_表示unsigned short变量。这样通过名字就可以确定变量i_smart为int类型,变量us_verysmart为unsigned short类型。