c - 在不同的 "platforms"之间移植 C 代码

标签 c operating-system porting platform

<分区>

我一直在阅读很多书籍/链接中的声明,例如 - “有很多因素决定了将 c 代码从一个平台移植到另一个平台”。他们指的平台是操作系统还是微处理器。这些因素是什么从一个平台到另一个平台的代码移植取决于。 提前谢谢你。

最佳答案

平台大概是指操作系统+编译器+虚拟内存地址空间+底层硬件架构。

一些因素是:

  1. OS提供的动态内存分配、线程同步、共享资源保护等API。

  2. 基本类型的大小,由编译器决定(sizeof(char) 除外,根据 C 语言标准为 1)。

  3. 指针的大小,取决于虚拟内存地址空间的大小(在 32 位平台上为 4 个字节,在 64 位平台上为 8 个字节)。

  4. 底层硬件架构的字节顺序,当通过“原始地址”访问大于 char 的类型时会产生不同的行为(例如,使用 char*).

关于c - 在不同的 "platforms"之间移植 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076085/

相关文章:

java - Java 中 C++ 移位运算符 << 的等价物?

c - 使用 '*' 作为反向抛光表达式的参数不起作用

C++ 包括用于 size_t 的 linux/types.h

c - 为什么我的输入重定向不起作用?

file - 通过计算每个文件的哈希值以外的技术在硬盘上查找重复文件

operating-system - 嵌入式操作系统的比较?

c - 在尝试学习和理解核心图形时,C++ 和线性代数是必须的吗?

file - os.File、io.Reader 和 os.Stdin 之间的区别

c - WaitForSingleObject 和 WaitForMultipleObjects 等同于 Linux?

iphone - 移植 iphone 应用程序。如果您要从头开始重新启动您的应用程序,您会采取哪些不同的做法?