8. 确认Buffer
要时时确认对设定的排列或变量的大小,以避免数据混乱或导致系统出问题。请看下面使用者输入数据的例子: char city[10];
/* 为都市名称的排列 */
printf("Enter a city name: ");
scanf("%s", city);
printf("City is %s\n", city);
在这里,都市名称设定为10字(英文字)以内。如果使用者输入10字以上的都市名称会怎么样呢?可以说程序失败或覆盖Buffer里面的数据。不管怎样,不要做冒险的事,你要检查文字的长度:
char city[10];
/*为都市名称的排列*/
printf("Enter a city name: ");
fgets(city, sizeof(city), stdin);
printf("City is %s\n", city);
上面已修改的程序是:如果使用者输入10字以上的都市名,只接受Buffer能接受的长度为止,其外的会不接受。
9. 绝对不相信使用者
这是很重要的规律。千万不要相信将要使用你的软件的人,不要认为使用者会按你希望的方式来操作,反而把他们想成专门发现程序毛病的人。举例说,上面的程序就是为了那些输入都市名更长的的使用者而确认文字长度的。
象C语言需要明确的数据形式的开发工具使用者,要记住确认输入数据形式和程序数据形式是否一致,不然会出现问题。
磨刀不误砍材工
以上的编程习惯是为你自己的方便。实际编程之前,要多做准备(分析,设计)。虽然稍麻烦,但为了编出易懂整齐的程序,不要舍不得花时间准备,不然以后会需要更多的时间来修改,扩展你的程序的。