标签:
1.讨论关于编程中代码移植的相关概念
不可移植的代码:
编译器定义的:由编译器设计者决定的行为,这就导致不同的编译器采取的行为不同。如:整型数右移位时,是否扩展符号位。
未确定的:C标准中未明确规定应该怎样做的行为。如:参数求值的顺序
坏代码:
未定义:在一些不正确的情况下出现时,标准未规定应该怎样做。如:有符号整数溢出是该采取何种行为。
约束条件:C标准中提出的必须遵守的限制和标准如:%操作符的操作数必须属于整型
标准规定,编译器只有在违反语法规则和约束条件的情况下才能产生错误信息。
为了最大限度保证代码的可移植性,一些遵循标准的程序可能依赖某种编译器的不可移植的特性,所以一个严格遵循标准程序应该具有以下特性:
a.只使用已确定的特性。
b.不突破任何由编译器实现的限制
c.不产生任何依赖有编译器定义的或未确定的或未定义的特性的输出。
标签:
原文地址:http://www.cnblogs.com/super90/p/4983796.html