码迷,mamicode.com
首页 > 其他好文 > 详细

01 C:穿越时空的迷雾

时间:2015-11-21 15:59:17      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

1.讨论关于编程中代码移植的相关概念

不可移植的代码:

  编译器定义的:由编译器设计者决定的行为,这就导致不同的编译器采取的行为不同。如:整型数右移位时,是否扩展符号位。

  未确定的:C标准中未明确规定应该怎样做的行为。如:参数求值的顺序

坏代码:

  未定义:在一些不正确的情况下出现时,标准未规定应该怎样做。如:有符号整数溢出是该采取何种行为。

  约束条件:C标准中提出的必须遵守的限制和标准如:%操作符的操作数必须属于整型

标准规定,编译器只有在违反语法规则和约束条件的情况下才能产生错误信息。

为了最大限度保证代码的可移植性,一些遵循标准的程序可能依赖某种编译器的不可移植的特性,所以一个严格遵循标准程序应该具有以下特性:

a.只使用已确定的特性。

b.不突破任何由编译器实现的限制

c.不产生任何依赖有编译器定义的或未确定的或未定义的特性的输出。

 

01 C:穿越时空的迷雾

标签:

原文地址:http://www.cnblogs.com/super90/p/4983796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!