我要开始一个宠物项目,目标是可移植性。这是一个简单的平台游戏,我计划用不同的工具链将它编译到许多不同的平台上。视频/输入/系统内容已经通过多个视频驱动程序进行了抽象,其中包括基于ifdef的代码。每个平台makefile都定义了平台(DC、NDS、PSP等)。然后,我包括适当的视频驱动程序,它们是C文件,具有围绕我的代码调用的各种函数。
但是,我不确定C中关于可移植应用程序的其他警告,应该重新定义stdlib中的内容吗?u8,u16,u32和s8,s16,s32等等?关于这个项目,你能和我分享什么知识?
发布于 2014-02-10 13:10:58
用C编写或多或少是可移植的,只要您不对类型的大小和用于访问它们的指针进行任何假设。我个人更喜欢使用stdint.h
(http://pubs.opengroup.org/onlinepubs/7999959899/basedefs/stdint.h.html)中定义的类型--这个定义类似于uint8_t
,uint16_t
.--但是可以自由地研究更多的替代方法,比如types.h
(来自POSIX标准: 2.6原始系统数据类型),它将它们定义为u_int8_t
等.
可能的话,你最终会根据你从网络上找到的各种来源中找到的东西来定义你自己的类型.比如:game_int_16
,game_int_32
.
发布于 2014-02-10 13:15:41
可移植程序是指:
对于未定义、未指定和实现定义的行为的列表,可以转到C标准C11附录J(可移植性问题)。
https://stackoverflow.com/questions/21678016
复制相似问题