5 votes

Le char est-il le seul type dont la taille est imposée ?

Dans la norme C++ :

sizeof(char) , sizeof(signed char) y sizeof(unsigned char) sont 1 .

  1. Existe-t-il d'autres types en C++ qui ont une valeur fixe ? sizeof ?

  2. La structure vide correspond-elle à cette définition ?

10voto

Bathsheba Points 23209
  1. Non. Comme vous dites, sizeof(signed char) , sizeof(unsigned char) y sizeof(char) sont définis par la norme comme étant égaux à 1. Il convient de noter que char doit être soit signed o unsigned mais il est toujours considéré comme un type distinct. Le site sizeof tout le reste est laissé à l'appréciation de la mise en œuvre, sous réserve de certaines contraintes (par ex. sizeof(long) ne peut être inférieure à sizeof(int) .)

  2. La norme C++ exige sizeof une classe vide pour être une valeur intégrale supérieure à zéro (sinon l'arithmétique des pointeurs se casserait horriblement).

1voto

Jarod42 Points 15729

1) Existe-t-il d'autres types en C++ qui ont une taille fixe ?

Il existe des tableaux dont la taille est spécifiée :

sizeof(T[N]) == N * sizeof(T)

donc sizeof(char[42]) es 42 .

2) La structure vide correspond-elle à cette définition ?

La structure vide n'est ni char , signed char o unsigned char Il ne correspond donc pas à cette définition. (BTW son sizeof ne peut être 0 ).

-1voto

tohava Points 1760

Pour ce qui est de la question 1, vous disposez également des types en stdint.h .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X