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 阅读(195) 评论(0)  编辑 收藏 引用 所属分类: Expert_C_programming


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


导航

<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

my

搜索

最新评论

阅读排行榜

评论排行榜