Je me souviens avoir lu quelque part que Qt garantit la taille de certains types de données sur les plates-formes supportées. Est-ce que int
sera au moins 32 bits partout, et qint32
sera exactement 32 bits partout? Ou autre chose?Est-ce que int est garanti à 32 bits sur chaque plate-forme supportée par Qt, ou seulement qint32?
C++ garantit que int
sera d'au moins 16 bits, et quelques structures Qt comme QRect
et QPoint
int
usage interne. Je développe une application où 32 bits sont nécessaires avec ces types, et je ne veux pas avoir à dupliquer leurs fonctionnalités pour pouvoir utiliser un type plus grand.
Ok, mais 'QtGlobal' définit plusieurs typedefs. Par exemple, la documentation de qint32 indique "Typedef for signed int. Ce type est garanti à 32 bits sur toutes les plates-formes supportées par Qt.". Donc, cela signifie que 'int' doit aussi être garanti à 32 bits sur toutes les plateformes supportées? –
Je ne tirerais pas cette conclusion. Le doc garantit que qint32 sera de taille 32 bits sur toutes les plateformes supportées, et non l'inverse. S'ils doivent à l'avenir prendre en charge une plate-forme qui int n'est pas 32 bits, ils modifieront le typedef de cette plate-forme pour refléter cela. Comme il est implémenté maintenant, vous pouvez supposer que toutes les plates-formes supportées par Qt ont un int 32 bits. Mais la supposition est une chose TRES MAL. –
Le but de qint32 et de ses amis est de fournir un type avec une signature et une taille garanties. Si les types standard fournissent cela, on n'aura pas besoin de ces typedefs Qt;) Je suppose que la documentation de Qt est libellée de manière ambiguë ici. –