有一个库是我针对不同的 32 位平台构建的。现在,必须支持 64 位架构。扩展现有 32 位代码以支持 64 位体系结构的最通用策略是什么?我应该使用#ifdef 还是其他什么?
最佳答案
所涉及的工作量将完全取决于原始代码的编写情况。在最好的情况下,除了重新编译之外不会涉及任何努力。在最坏的情况下,您将不得不花费大量时间使您的代码“64 位干净”。
典型的问题是:
- 关于 int/long/pointer 等大小的假设
- 分配指针 <=> 整数
- 依赖默认参数或函数结果转换(即无函数原型(prototype))
- 不适当的 printf/scanf 格式说明符
- 关于结构的大小/对齐/填充的假设(特别是关于文件或网络 I/O,或与其他 API 接口(interface)等)
- 在使用字节偏移量进行指针运算时进行不适当的转换
关于c - 为现有的 32 位代码添加 64 位支持,难吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4078212/