c语言实验报告答案金科,嵌入式微控制器C语言学习笔记18-《C 专家编程》第1章...

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

●C语言的史前阶段

C语言源于通用电气、麻省理工和贝尔实验室在1969年合作的一个名为Multics失败的项目。在该项目失败后,研究人员Ken Thompson和Dennis Ritchie用汇编语言编写一个名为UNIX的操作系统。UNIX经过若干次的改写,由最初的汇编改成BCPL语言,再改成B语言、New B语言,到1973年左右采用C语言改写了UNIX系统。

编译器设计者的金科玉律:效率(几乎)就是一切。

●C语言的早期体验

数组下标从0开始而不是从1开始;

C语言的基本数据类型直接与底层硬件相对应;

auto关键字显然是摆设;

表达式中的数组名可以看作是指针;

float被自动扩展为double;

不允许嵌套函数(函数内部包含另一函数的定义);

register关键字。使用了register关键字,简化了编译器,却把包袱丢给了程序员。

●标准I/O库和C预处理器

C语言原先没有定义I/O,而是由库函数提供。后来这实际上成了标准机制。

C预处理器的3个主要功能:

字符串替换;

头文件包含;

通用代码模板的扩展。对宏这样的预处理器只应该适量使用。

宏最好只用于命名常量,并为一些适当的结构提供简捷的记法。宏名应该大写,这样很容易与函数调用区分开。千万不要用C预处理器来修改语言的基础结构。

●K&R C

1978年《C程序设计语言》出版,这个版本的C被成为K&R C。

●今日之ANSI C

任何学习或者使用C语言的人都应当使用ANSI C,而不是K&R C。

●K&R C和ANSI C之间的区别

主要分成四类:

新的、非常不同的、并且很重要的东西。唯一属于这类区别的特性是原型-把形参的类型作为函数声明的一部分。

新的关键字。ANSI C增加了一些关键字:enum、const、volatile、signed、void。

原先的有些语言特性依然合法,但意思有了一些轻微的改变。

最后一类在现实中几乎不可能碰到。

ANSI C中最重要的新特性就是“原型”,这种特性取自C++。原型就是函数声明的扩展,这就允许编译器在参数的使用和声明之间检查一致性。

●容易混淆的const

关键字const并不能把变量变成常量。在一个符号前加上const限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序内部(甚至是外部)的方法修改这个值。const最有用之处就是用它来限定函数的形参,这样函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。const和*的组合通常只用于在数组形式的参数中模拟传值调用,它声称“我给你一个指向它的指针,但你不能修改它”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值