chenglong7997

chapter 1(历史问题)

知识点:

1.float不会被自动扩展为double。 在ANSI C中

2.宏所接受参数类型可以不同。 最好只用于命名常量和为结构提供简洁记法。

3.操作符左右最好用空格分开。防止古老版本的程序,会修改赋值符的位置。

4.在limits.h中有INT_MAX, LONG_MAX定义

5.类型不兼容。因为两个指针所指对象不同。而不是修饰符不同
foo (const char **p) {}
 
int main(int argc, char **argv)
{
     foo(argv);
}

6.K&R C 和 ANSI C对待无符号数原则不同
K&R C 使用无符号保留的原则。
ANSI C 使用值保留的原则。(整数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned)
经过gcc中测试,采用的是ANSI C的原则

7.尽量不要在代码中使用无符号数,以避免增加不必要的复杂性。不要仅仅因为无符号数不存在负值(如年龄),就用它来表示数量。
只有在使用位段和二进制掩码时候,才可以用无符号数。在表达式中使用强制转换,是操作数均为有符号或者无符号数,这样就不必由编译器选择结果的类型。


posted on 2012-06-21 04:03 Snape 阅读(119) 评论(0)  编辑 收藏 引用 所属分类: Expert_C_programming


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

my

搜索

最新评论

阅读排行榜

评论排行榜