64-bit平台移植:为何面临如此多挑战?(译)
本文源自于软件测试人专业博客,任何转载均需注明原址:http://www.mytestlife.com/post/64 _bit_porting.html,译文:Porting to 64-Bit Platforms: Why Is it So Challenging?
对于负责将C/C++代码移植到64-bit处理器或其他平台的多数开发人员而言,困扰他们的问题在于当他们所移植代码在新的平台和架构上运行时,发现令人头疼的内存问题。
64-bit平台移植,从根本上看,其问题均源自于:整数类型和指针类型的字节数在不同的平台上存在不一致性。例如:
1. 通过赋值语句隐式转换或强制类型转换将long型转换为int类型,可能存在的潜在问题。前者编译器可能给出一个相应警告;而后者,相反,则被编译器所接受,从而导致在运行时各种各样的问题浮出水面;
2. 那些未显示的指定字节大小的整形常量被假定为int类型,这对于一些混合的无符号和有符号常量存在一些风险。合理使用相关前缀能够改善此问题。
在接下来一系列文章中,我将更深入的分析“如何将运行时错误检查,静态分析,单元测试用在移植代码过程中错误检查”,然后介绍一种如何有效识别64-bit处理器错误的策略。
