一个特定于 C++ 的问题。所以我读了一个关于什么使程序成为 32 位/64 位的问题,它得到的答案是这样的(抱歉我找不到这个问题,几天前我看过它但我再也找不到它了:( ):只要你不做任何“指针假设”,你只需要重新编译它。所以我的问题是,什么是指针假设?据我了解,有 32 位指针和 64 位指针,所以我认为这与那个。请展示它们之间的代码差异。在编写代码时要记住的任何其他好习惯,这有助于它在 to 之间轻松转换,也欢迎 :) 请与他们分享示例
附言。我知道有这个帖子: How do you write code that is both 32 bit and 64 bit compatible? 但我认为对于像我这样的新程序员来说,这有点笼统,没有很好的例子。就像什么是 32 位存储单元等。有点想把它分解得更多一点(没有双关语 ^^ ) ds。
最佳答案
一般来说,这意味着您的程序行为永远不应该依赖于任何类型的 sizeof()
(不具有某种精确的大小),无论是显式还是隐式(这包括可能的结构对齐)。
指针只是它们的一个子集,这可能也意味着您不应该尝试依赖能够在不相关的指针类型和/或整数之间进行转换,除非它们是专门为此制作的(例如 intptr_t
)。
以同样的方式,你需要处理写入磁盘的事情,你也不应该依赖于例如大小。内置类型,到处都一样。
每当您必须(例如由于外部数据格式)使用明确大小的类型时,例如 uint32_t
。
关于c++ - 如何编写可转换代码,32 位/64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15001615/