数据类型定义的重要性

来源:互联网 发布:网络销售总结怎么写 编辑:程序博客网 时间:2024/05/16 14:34
C语言的数据类型有明确的值域,例如unsigned char类型范围为0~255,而char类型为-127~127,必须分清楚每一种数据类型的值域范围,分清楚有符号数与无符号数的区别,否则类型定义不当很容易造成程序异常,例如

#define UCHAR_MAX 255 char ch_to_lower[UCHAR_MAX + 1]; void build_to_lower_table(void) {     unsigned char ch;     for(ch = 0; ch <= UCHAR_MAX; ch++)     {         ch_to_lower[ch] = ch;     }     for(ch = 'A'; ch <= 'Z'; ch++)     {         ch_to_lower[ch] = ch + 'a' - 'A';     }  } 

在上面的例子中,ch是unsigned char型,因此最大值为255,而执行for(ch = 0; ch <= UCHAR_MAX; ch++)最后一次循环ch++后将出现溢出翻转,导致出现死循环。

0 0
原创粉丝点击