Ich erinnere mich irgendwo lesen, dass Qt die Größe einiger Datentypen auf unterstützten Plattformen garantiert. Ist es das int
wird mindestens 32 Bits überall sein, und qint32
wird genau sein 32 Bits überall? Oder etwas anderes?Ist int garantiert 32 Bit auf jeder Plattform von Qt oder nur qint32 unterstützt?
C++ garantiert, dass int
16 Bits zumindest sein, und einige Qt Strukturen wie QRect
und QPoint
Verwendung int
intern. Ich entwickle eine Anwendung, bei der 32 Bit mit diesen Typen benötigt werden, und ich möchte ihre Funktionalität nicht duplizieren müssen, damit ich einen größeren Typ verwenden kann.
Ok, aber 'QtGlobal' definiert mehrere Typedefs. In der Dokumentation für qint32 steht beispielsweise "Typedef für signed int. Dieser Typ ist garantiert 32-Bit auf allen von Qt unterstützten Plattformen." Das bedeutet also, dass "int" auch auf allen unterstützten Plattformen 32 Bit garantiert sein muss? –
Ich würde diese Schlussfolgerung nicht ableiten. Das doc garantiert, dass qint32 auf allen unterstützten Plattformen eine 32-Bit-Größe hat und nicht umgekehrt. Wenn sie in der Zukunft eine Plattform unterstützen müssen, die int nicht 32-bit ist, werden sie das typedef für diese Plattform ändern, um das widerzuspiegeln. Da es jetzt implementiert ist, können Sie davon ausgehen, dass alle von Qt unterstützten Plattformen über 32-Bit-Int verfügen. Aber Annahme ist eine SEHR BÖSE Sache. –
Der Zweck von qint32 und Freunden besteht darin, einen Typ mit garantierter Signedness und Größe anzugeben. Wenn die Standardtypen das bereitstellen würden, würde man diese Qt typedefs nicht brauchen;) Ich schätze, die Qt-Dokumentation ist hier zweideutig formuliert. –