C专家编程

引用

第1章 C:穿越时空的迷雾

1.1 C语言的史前阶段
1.2 C语言的早期体验


C语言排斥强类型,即其是弱类型。它允许程序员需要时可以在不同类型的对象间赋值。C语言的许
多特性是为了方便编译器设计者而建立的:
1.数组下表从0开始
2.基本数据类型直接和底层硬件相关
3.auto 关键字是摆设(它是缺省的内存分配模式,其只对创建符号表入口的编译器设计者有用)
4.float被自动扩展为double(但在ANSI C中不再这样)
5.不允许嵌套,即函数内部包含另外一个函数
6.register关键字。告诉编译器,哪些变量经常被使用,可以把他们放在寄存器中。

1.3 标准I/O库和C预处理器
1.4 K&R C

1978年,C语言经典名著The C Programming Language出版了。这本书受到
了广泛的赞誉,其作者Brian Kernighan和Dennis Ritchie也因此名声大噪,
所以这个版本的C语言就被称为“K&R C"。出版商最初估计这本书将售出1000册
左右。截止到1994年,这本书大约售出了150万册(参见图1-3)。C语言成为最
近20年最成功的编程语言之一,可能就是最成功的。但随着C语言的广泛流行,
许多人试图从C语言中产生其他变种。

1.5 今天的ANSI C 

ANSI C是美国国家标准化组织审定的一个C语言标准,其在1989年发布,并在次年被ISO
(国际标准化组织)接纳,ISO稍作修改后发布,所以ANSI C也可以称ISO C。目前ISO已经
发布了ISO C99和ISO C11。K&R C早于ANSI C,是对C语言经典名著
《The C Programming Language》的两位作者,Brain Kernighan和Dennis Ritchie的
名字的缩写。

1.6 

1.7  

1.8 ANSI C标准的结构

ANSI C与K&R C的不同
1.新的、非常不同,且重要的(仅一个)
ANSI C 把函数原型作为函数声明的一部分,原型的形式,其两者也有了很大的变化
2.新增的关键字
ANSI C 增加了 enum, const, volatile, signed, void等关键字
弃掉了K&R C中的entry等关键字
3.“安静的改变”
4.符号粘贴(token-pasting)
三字母词(trigraph),即用3个字符表示一个单独的字符,如两字母词\t表示“tab”, 三字母词??<表示“开放的花括号”。

1.9 阅读ANSI C标准,寻找乐趣和裨益

如下代码会报一条warning,“argument #1 is imcompatible with prototype…”,为什么?
foo(const char **p) 
{
}
main(int argc, char **argv) 
{
       foo(argv);
}

原因分析(摘自ANSI C标准):
1.每个实参都应该具有自己的类型,这样它的值就可以复制给与它所对应的形参类型的对象
(该对象的类型不能含有限定符)
要使得上述赋值形式合法,必须满足下列条件之一:
1.两个操作数都是指向有限定符或无限定符的相容类型指针
2.左边指针所指向的类型必须具有右边指针所指向类型的全部限定符
基于上述描述故实参char 能和型参const char匹配

但是:const float *类型并不是一个有限定符的指针类型,它的类型是“指向一个具有const
限定符的float类型的指针,即const修饰的是指针指向的类型而不是指针本身。
基于上条描述故char * 和 const char * 都是没有限定符的指针类型,但它们所指向的类型
不一样,(前者指向char ,后者指向 const char ,这是两个不同类型的对象),进而不相容,
所以报错。

第2章 这不是BUG,而是语言特性

2.1 

第6章 运动的史章

6.8

setjump与longjump

6.11 工具的下载 

cflow的下载

cflow源码安装 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值