首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在编写便携C时要考虑什么?

在编写便携C时要考虑什么?
EN

Stack Overflow用户
提问于 2014-02-10 13:03:17
回答 2查看 150关注 0票数 0

我要开始一个宠物项目,目标是可移植性。这是一个简单的平台游戏,我计划用不同的工具链将它编译到许多不同的平台上。视频/输入/系统内容已经通过多个视频驱动程序进行了抽象,其中包括基于ifdef的代码。每个平台makefile都定义了平台(DC、NDS、PSP等)。然后,我包括适当的视频驱动程序,它们是C文件,具有围绕我的代码调用的各种函数。

但是,我不确定C中关于可移植应用程序的其他警告,应该重新定义stdlib中的内容吗?u8,u16,u32和s8,s16,s32等等?关于这个项目,你能和我分享什么知识?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-10 13:10:58

用C编写或多或少是可移植的,只要您不对类型的大小和用于访问它们的指针进行任何假设。我个人更喜欢使用stdint.h (http://pubs.opengroup.org/onlinepubs/7999959899/basedefs/stdint.h.html)中定义的类型--这个定义类似于uint8_tuint16_t .--但是可以自由地研究更多的替代方法,比如types.h (来自POSIX标准: 2.6原始系统数据类型),它将它们定义为u_int8_t等.

可能的话,你最终会根据你从网络上找到的各种来源中找到的东西来定义你自己的类型.比如:game_int_16game_int_32 .

票数 1
EN

Stack Overflow用户

发布于 2014-02-10 13:15:41

可移植程序是指:

  • 只使用C标准中定义的语言和库的特性
  • 不调用未定义的行为。
  • 不依赖于未指定或实现定义的行为。

对于未定义、未指定和实现定义的行为的列表,可以转到C标准C11附录J(可移植性问题)。

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

https://stackoverflow.com/questions/21678016

复制
相关文章

相似问题

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