gpt4 book ai didi

c++ - 如何编写可转换代码,32 位/64 位?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:58 24 4
gpt4 key购买 nike

一个特定于 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com