c++ - 32 位与 64 位上的字符类型

标签 c++

这是以下问题:

如果我在 32 位机器上开发并希望将我的代码移植到 64 位机器上,这里是 senario。

我的函数在内部使用了很多 std 字符串。现在,如果我想提供 API,我可以要求他们发送我可以在内部使用的 char * 吗?或者让他们给我发送一个 __int64,我可以将其转换为字符串?

在我的 API 中使用 char * 的另一个原因是至少在一种类型的 unix 实现中(该工具的不同版本)它从 stdin 中获取数据> 通过 argv,这是一个 char *

在 Windows 版本中,我不确定该怎么做。我可以只要求 __int64 然后将它转换成一个字符串......并让它以这种方式工作或者只使用 char * 吗?

最佳答案

如果您提供 C++ 实现,那么您的公共(public)接口(interface)应该只使用 std::string

但是,如果出于兼容性原因(听起来您可能有),您需要提供 C 风格的接口(interface),那么使用 char* 正是实现这一目标的方法。在您的 32 位库中它将是一个 32 位指针,而在库的 64 位版本中它将是 64 位。这将与客户用户对 API 的期望一致。但是,您绝对应该尽早在库中转换为 std::string

关于c++ - 32 位与 64 位上的字符类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100146/

相关文章:

C++类反汇编

c++ - 如何在 Windows 中获取当前操作系统版本的描述?

c++ - 在 QT 中显示 HALCON HImage

c++ - 从 C 中创建一个新的 EXE

java - 如何解决这个难题?

c++ - 如何在 Windows 上使用 C++ 获取设备的父级?

c++ - c/c++中perl的hash变量替换

c++ - Boost图递归模板问题

c++ - *这是什么奇怪的魔法?

C++ 模板化 HashMap 实现错误