1.2 C语言的早期体验
1)C语言的基本数据类型直接与底层硬件相对应。C语言不存在内置的复数类型。C语言一开始不支持浮点类型,直到硬件系统能够直接支持浮点数之后才增加了对它的支持。
2)auto关键字显然是摆设。这个关键字只对创建符号表入口的编译器设计者有意义。它的意思是“在进入程序块时自动进行内存分配”,其他程序员不必操心auto这个关键字,它是缺省的变量内存分配模式。
3)表达式中的数组名可以看作是指针。
4)float被自动扩展为double。尽管ANSI C中情况不再如此,但最初浮点数常量的精度都是double型的,所有表达式中float变量总被自动转换成double。
5)不允许嵌套函数(函数内部包括另一函数的定义)。
6)register关键字。这个关键字能给编译器设计着提供线索,就是程序中的哪些变量属于热门(经常被使用),这样就可以把它们存放到寄存器中。但使用register关键字,虽然简化了编译器,却把包袱丢给了程序员。
1.3 C预处理器
它实现了三个主要功能:
1)字符串替换:#define MAX_LENGHT 1000
2)头文件包含:一般性的声明可以被分离到头文件中,并且可以被许多源文件使用。
3)通用代码模板的扩展:#define max(x, y) x>y?x:y
在宏的扩展中,空格会对扩展的结果造成很大的影响。对宏的使用,要适量使用。
时间: 2024-11-05 09:41:28