C陷阱与缺陷--读书笔记7 可移植性缺陷

第七章
 
一、知识点
1、ANSI C标准所能保证的只是,C实现必须能够区别出前6个字符不同的外部名称。而且,这个定义中并没有区分大写字母与其对应的小写字母,所以在选择外部标识符时应该注意。(P113)
 
2、如果c是一个字符变量,使用 (unsigned) c 就可得到与 c 等价的无符号整数。这是会失败的,因为在将字符 c 转换为无符号整数时,c 将首先被转换为 int 型整数,而此时可能得到非预期的结果。
正确的方式是使用语句 (unsigned char) c ,因为一个 unsigned char 类型的字符在转换为无符号整数时无需首先转换为 int 型整数,而是直接进行转换。(P116)
 
3、除非是用于赋值或比较运算,出于其他任何目的使用null指针都是非法的。(P117)
 
4、调用malloc(n)将返回一个指针,指向一块新分配的可以容纳 n 个字符的内存,编程者可以使用这块内存。把 malloc 函数返回的指针作为参数传入给 free 函数,就释放了这块内存,这样就可以重新利用了。调用 realloc 函数时,需要把指向一块已分配内存的区域指针以及这块内存新的大小作为参数传入,就可以调整这块内存区域为新的大小,这个过程中可能涉及到内存的拷贝。(P122)
posted on 2012-05-01 09:25  谷堆旁边  阅读(384)  评论(0编辑  收藏  举报