8 bit Datenyp erzeugen

Gast #768702
Lesenswert?

Hallo, bei dem TI DSP 320f2812 ist ein char Datentyp automatisch 16 bits 
groß.

Das Datenblatt schreibt hierzu:

By ANSI/ISO C definition, the sizeof operator yields the number of bytes 
required
to store an object. ANSI/ISO further stipulates that when sizeof is 
applied to char,
the result is 1. Since the TMS320C28x char is 16 bits (to make it 
separately
addressable), a byte is also 16 bits. This yields results you may not 
expect; for
example, size of (int) = = 1 (not 2). TMS320C28x bytes and words are 
equivalent
(16 bits).

Jetzt möchte ich aber ASCII Zeichen über die Serielle Schnittstelle 
einlesen und zwischenspeichern. Um Speicherplatz zu sparen wäre es 
praktisch ich könnte mir ein Datentyp erzeugen der wirklich nur 8 Bit 
groß ist.
Ich habe hierbei an eine Lösung über Bitfelder gedacht wie.
1
Struct test {
2

3
Unsigned datentyp8a :8
4
Unsigned datentyp8b :8
5
}structur;
Dies ist aber nicht das wahre oder das was ich suche. Gibt’s hier nicht 
noch eine elegantere Lösung mit Union der typedef???

Vielen dank für eure Vorschläge.
Gast #769344
Lesenswert?

<Grins>
Dem C Compiler mangelt es an der erwarteten Flexibilitaet... Da es mit 
aller Voraussicht nicht um Stringverarbeitung geht, sondern nur um eine 
Augabe wuerde ich 2 Char in einem Word speichern und bei der Ausgabe das 
Passende zuerst ausgeben.
</Grins>
#770521
Lesenswert?

Hm Ok

Ja das mit den 2 Char also 2 mal 8 bit ascii Zeichen in einem 16 bit 
datentyp speichern ist die notlösung.

Aber nochmal mithilfe der Bitfelder mit 8 einzelnen bits also so
1
Struct test {
2

3
Unsigned datentyp8a :8
4
Unsigned datentyp8b :8
5
}structur;

kann ich mit typedef oder sowas kein 8 bit datentyp erzeugen?

Schade wäre halt so praktisch gewesen.

Falls noch jemand eine idee hat bin ich dankbar.

gruss tobe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren