C专家编程读书笔记(上)

文章作者 100test 发表时间 2007:03:10 17:16:57
来源 100Test.Com百考试题网


1、尽量不要在你的代码中使用无符号类型,以免增加不比要的复杂性。尤其是不要仅仅因为无符号书不存在负值(如年龄、国债)而用它来表示数量。尽量使用int那样的有符号类型,这样在涉及升级混合类型的复杂细节时,不必担心边界情况(如-1被翻译为非常大的正数)。只有在使用位段和二进制掩码时,才可以用无符号数,应该在表达式中使用强制类型转换,使操作数均为有符号或者无符号数。

2、这也是为什么C 语言令人失望的原因:它对C语言中存在的一些最基本的问题没有什么改进,而它对C语言最重要的扩展(类)却是建立在脆弱的C类型模型上。

3、看一段代码:
int main(void)
{
int pa=0.
char * avarsc[] =
{
"color monitor",
"big disk",
"Cray"
"on-line drawing routhines",
"mouse",
"keyboard",
"power cables",
}.
char ** pp.
pp = avarsc.

printf("%s ", avarsc[2]). // output Crayon-line drawing routhines
printf("%s ", *(pp )). // output big disk
scanf("%d", pa).
return 1.
}
注意字符串数组的定义,最后那个逗号,还有"Cray"后头没有逗号其实avarsc是个字符指针的指针
曾经写过一个这样错误的代码,要为一个字符串: "" 申请 空间,应该是STRLEN("""")却写成了STRLEN(""""),编译没有错误,也就没有注意,在后来走查代码的时候,发现了错误的地方,多亏为它多申请了不少空间,不然这又是个难以察觉的内存错误。


相关文章


c_c 深入探讨数组内存模型
数据库系统2-6:关系运算的安全性
C专家编程读书笔记(下)
数据库系统2-5:域关系演算
C专家编程读书笔记(上)
数据库系统2-4:专门关系运算
c与c 程序连接问题
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛