c++ - 不同平台的 QT 应用程序中的类型是否具有相似的大小?

标签 c++ qt cross-platform built-in-types

我使用 QT 在 C++ 中为 Windows 创建了一个应用程序。如果我想将它移植到 Linux 或 Mac OS,sizeof(int)sizeof(long) 会改变吗?换句话说,不同平台的QT应用程序中的类型是否具有相似的大小?

最佳答案

除了 stefaanv 的回答,如果你担心它们的大小,使用 quint32 和 friend 。 Qt 保证它们在所有支持的平台上大小相同。

查看 QtGlobal :

The header file declares several type definitions that guarantee a specified bit-size on all platforms supported by Qt for various basic types, for example qint8 which is a signed char guaranteed to be 8-bit on all platforms supported by Qt. The header file also declares the qlonglong type definition for long long int (__int64 on Windows).

Several convenience type definitions are declared: qreal for double, uchar for unsigned char, uint for unsigned int, ulong for unsigned long and ushort for unsigned short.

或者,如果您想要更标准的解决方案,可以使用 stdint.h .我一直喜欢使用 Qt,因为移植实际上只是在不同的平台上运行 qmake

关于c++ - 不同平台的 QT 应用程序中的类型是否具有相似的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734026/

相关文章:

c++ - 继承QFrame时未定义对vtable的引用

android - 如何从二进制数据中读取数字,跨平台/C++)?

C++: ":"到底在做什么?

c++ - 从 C++ 中的 txt 文件中读取空白字符

c# - 如何使用高级 OpenType 功能编写程序?

c++ - 编辑 ui 文件时,不会重新生成 cpp.obj 文件

安卓 NDK : Aborting stop?

QT:使用缩放调整 QImage 的大小

c++ - 如何在跨平台 C++ 应用程序中嵌入 PDF 查看器?

unicode - 电子邮件中的安全 Unicode 标志