Re: Bit-Fields sind gehören nicht in portablen Code!


[ Antworten ] [ Ihre Antwort ] [ Forum www.einfachbuch.de ]

Abgeschickt von Eberhard am 15 Februar, 2006 um 11:02:41:

Antwort auf: Bit-Fields sind gehören nicht in portablen Code! von Patrick am 15 Februar, 2006 um 09:18:06:

: Bit Fields, z.B.

: struct
: {
: int a:3;
: int b:2
: } s;

: sind Compiler-, Betriebssystem- und Platformabhängig und gehören deshalb nicht in portablen Code. Auch nicht in Embedded-System-Code, der i.d.R. nicht nur im Target, sondern auch in einer Win-Simulation laufen soll.

: Merke: Plain-C-Code, der nicht ständig neu geschrieben werden soll, DARF KEINE Bit-Fields enthalten.

: So steht es im Einfachbuch.

Bit-Fields sind im C-Standard definiert, warum sollte man sie nicht nutzen?
Das Portabilitätsproblem liegt nicht am Bit-Field, sondern an dem Basistyp, welcher dafür zugrunde gelegt wird.

Schon eine Struktur wie z.B.
struct
{
int a;
int b;
} s;

ist nicht portabel, weil ein int je nach Compiler unterschiedlich breit ausfällt.

Wird z.B. int32 für jeden Compiler an entsprechender Stelle richtig definiert, wird

struct
{
int32 a;
int32 b;
} s;

portabel. Ebenso

struct
{
int32 a:3;
int32 b:2;
} s;


C-Code, der nicht ständig neu geschrieben werden soll, DARF IN STRUKTUREN KEINE BASIS-TYPEN benützen. Ist das noch Plain-C?

Oder anders gesagt:
Plain-C ist nicht für portable Programmierung geeignet.





Antworten:



Ihre Antwort

Name:
E-Mail:

Subject:

Text:

Optionale URL:
Link Titel:
Optionale Bild-URL:


[ Antworten ] [ Ihre Antwort ] [ Forum www.einfachbuch.de ]