首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同的“平台”之间移植C代码

在不同的“平台”之间移植C代码
EN

Stack Overflow用户
提问于 2014-11-22 09:55:07
回答 3查看 818关注 0票数 0

我在许多书籍/链接中读到了这样的声明:“有许多因素决定了c代码从一个平台移植到另一个平台”,他们所指的操作系统或.Are平台是代码从一个平台移植到另一个平台所依赖的因素。提前谢谢你。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-22 10:13:21

平台可能是指OS +编译器+虚拟内存地址空间+底层HW体系结构。

其中一些因素是:

  1. OS提供的用于动态内存分配、线程同步、共享资源保护等的API。
  2. 原语类型的大小,由编译器决定(除了C语言标准为1的sizeof(char) )。
  3. 指针的大小,这取决于虚拟内存地址空间的大小(32位平台上有4个字节,64位平台上有8个字节)。
  4. 基础HW体系结构的端点性,它在通过“原始地址”访问大于char的类型时产生不同的行为(例如,使用char*)。
票数 4
EN

Stack Overflow用户

发布于 2014-11-22 10:09:08

"platform“可以指一个或多个OS、编译器工具链或目标处理器。

影响便携性的一些因素可能包括:

  • 程序中使用的库函数或系统调用,
  • 可能在一个工具链中支持但不支持另一个工具链的非标准扩展,
  • 可以从一个平台更改到另一个平台的类型的表示形式。例如,int在一个平台上可能是32位,在另一个平台上是64位,或者数值的属性可能有所不同。
票数 2
EN

Stack Overflow用户

发布于 2014-11-22 10:07:12

将平台理解为OS,您必须考虑到很多代码使用对OS钩子的本机调用,还有一些库只与一个OS交互。您可以使用支持目标操作系统的库来避免此问题。

另一方面,如果您将平台理解为体系结构,则需要一些低级的警告,如按位、键入、地址大小等.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27076085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档