Was ist ein “Byte” in C / C++

Lesezeit: 1 Minute

Benutzer-Avatar
Benutzer389419

Hier ist zum Beispiel eine Referenz für fread:

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

Liest ein Array von count-Elementen, jedes mit einer Größe von “Size Bytes” … Also, wie viele BITS werden gelesen fread(&x, 1, 1, stream)? Acht bzw CHAR_BIT?

  • Das ist von der Linux-Manpage, richtig? Die Definition des C-Standards erwähnt Bytes überhaupt nicht: “The fread Funktion liest, in das Array, auf das gezeigt wird ptrbis zu nmemb Elemente, deren Größe durch angegeben wird sizeaus dem Stream, auf den von gezeigt wird stream.”

    – Fred Foo

    28. November 2011 um 13:27 Uhr


  • Und da es von der Linux-Manpage stammt, CHAR_BIT garantiert (durch Posix) gleich 8 ist.

    – Steve Jessop

    28. November 2011 um 13:37 Uhr

  • Der C-Standard tut Byte erwähnen. Abschnitt 3.6 definiert ein Byte als kleinste adressierbare Einheit.

    – JeremyP

    28. November 2011 um 14:00 Uhr

  • @JeremyP: Der C-Standard tut es. “Die Definition des C-Standards” (von fread) nicht.

    – Steve Jessop

    28. November 2011 um 15:35 Uhr

  • Zusätzliche 0,02 $: Wenn Sie einen eindeutigen Begriff benötigen, um sich auf ein 8-Bit-Stück sinnvoller Daten zu beziehen, nennen Sie es ein “Oktett”.

    – Brian McFarland

    28. November 2011 um 16:54 Uhr

C99, §3.6:

Byte

adressierbare Datenspeichereinheit, die groß genug ist, um jedes Element des grundlegenden Zeichensatzes der Ausführungsumgebung aufzunehmen

und §5.2.4.2.1:

CHAR_BIT — Anzahl der Bits für das kleinste Objekt, das kein Bitfeld (Byte) ist

Somit enthält ein “Byte”. CHAR_BIT Bits.

CHAR_BIT. Die Bitbreite eines Bytes ist implementierungsdefiniert und steht dem Entwickler über die zur Verfügung CHAR_BIT Makro.

1217120cookie-checkWas ist ein “Byte” in C / C++

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy