c语言可移植性较差吗,c陷阱与缺陷--可移植性缺陷

引入

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类型表示的是最大的类型

四 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值