引入
c语言是比较底层的语言,相对于c++和java等高级语言而言。c语言在许多不同的系统平台上都有各自的实现,由于各自的实现之间有细微的差别,导致了如今的移植性问题。
在书中说到,由于程序的生命期一般比硬件更长,所以应该注意语言自身的可移植性。但时至今天,这个说法或许需要更正了。
但作者的原意在于,注意可移植性问题可以使你的程序生命期更长,可施展的空间
更大。
一 c语言标准的变更
c语言标准的变更使得语言的特性更多,更方便程序的工作。但是这种变更经常不具备向后兼容性,如此要在语言的重用性和更强大的语言特性间做个选择。
二 标识符名称的限制
这种限制主要体现在其大小写和长度上面。
三 整数的大小
c语言中为编程者提供了3种不同长度的整数:shor型、int型和long型,c语言的定义中对各种类型整数的相对长度进行了规定:
1 3种类型的整数其长度是非递减的。
2 一个普通(int类型)整数足够大以容纳任何数组下标。
3 字符长度由硬件特性决定。
注: 现代大多数机器的字符长度为8位,然而,现在越来越多的c语言实现的字符长度都是16位,已处理诸如汉字之类的语言的大字符集。但是字符类型char仍然是8位的。
在32位机器上,vc6.0的编译环境下,shor类型为16位,int和long类型都是32位。
解决方法 用类型定义来定义“新的”类型,即使类型长度需要变动之需要改动类型定义即可。
如 typedef long
tenmil;//tenmil类型表示的是最大的类型
四