Kann ich mich darauf verlassen, sizeof(uint32_t) == 4?

Ich weiß das ich mich verlassen kann sizeof(char) == 1, aber was sizeof(uint32_t) und sizeof(uint8_t)?
Sollte es nicht 32bit (8bit) in der Größe erraten, aus dem Namen?
Danke!

  • Es wäre sehr inkonsequent, wenn sizeof() zurückkehren würde, bits anstelle von bytes, die nur in diesen Fällen.
  • Natürlich, solange CHAR_BIT == 8 können Sie. Heutzutage ist es nicht leicht zu finden, eine Architektur, wo das nicht so ist.
  • sizeof() gibt die Anzahl der bytes, uint32_t gibt die Breite in bits, so dass im Grunde, was sind die Anzahl der bits in einem byte auf die Ziel Plattform? Sehen CHAR_BIT.
  • Ich habe gehört, dass es eine Menge von embedded-Prozessoren, wo CHAR_BIT == 32. (Ich habe nicht gearbeitet, die auf embedded-Prozessoren für die letzten 30 Jahre, also weiß ich nicht aus Erfahrung. Aber einer der letzten, die ich gearbeitet habe nicht byte-Adressierung, und die übliche Umsetzung hätte CHAR_BIT == 16.)
  • Ich nehme an, dass ist wahr-aber das ist ein ziemlich getrennt Nische in der Programmierung. Die meisten Entwickler sind den Umgang mit mainstream-Architekturen, die es scheint endlich geklärt CHAR_BIT == 8.
  • Es ist eindeutig eine bestimmte Domäne. Ich vermute, dass es sich um eine größere Anzahl von Programmierern, als Sie denken, aber es gibt eine Menge mehr embedded-Prozessoren als Desktop-PCs oder Großrechnern.

InformationsquelleAutor tzippy | 2014-07-24
Schreibe einen Kommentar