Soweit ich finden konnte, ist die Breite des bool
Typs implementierungsdefiniert. Aber gibt es irgendwelche booleschen Typen mit fester Breite, oder sollte ich mich beispielsweise an eine uint8_t
halten, um eine Boole mit fester Breite darzustellen?Gibt es einen Bolt-Typ mit fester Breite in C++?
[EDIT] Ich machte dieses Python-Skript, das automatisch eine C++ - Klasse generiert, die die Variablen enthalten kann, die ich zwischen einem Mikrocontroller und meinem Computer senden möchte. Die Funktionsweise besteht darin, dass auch zwei Arrays einen Zeiger auf jede dieser Variablen und die Größe jedes einzelnen halten. Dies gibt mir die notwendigen Informationen, um jede dieser Variablen einfach zu serialisieren und zu deserialisieren. Damit dies funktioniert, müssen die Größe, die Endianz usw. der Variablentypen auf beiden Seiten gleich sein, da ich den gleichen generierten Code auf beiden Seiten verwende. Ich weiß nicht, ob das noch ein Problem sein wird, aber ich erwarte es nicht. Ich habe bereits mit diesem (32bit ARM) Chip gearbeitet und hatte in der Vergangenheit keine Probleme beim Senden von Integer- und Float-Typen. Es wird jedoch ein paar Tage dauern, bis ich zurück bin und Booleans auf dem Chip ausprobieren kann. Dies könnte später ein größeres Problem sein, da dieser Code später auf anderen Chips wiederverwendet werden könnte.
Also meine Frage ist. Gibt es eine feste Breite bool
Typ in den Standard-Bibliotheken definiert oder sollte ich nur eine Uint8_t, um den Boolean zu repräsentieren?
Ein 'Bool'-Typ ist auf' true' und 'false' festgelegt. Wie können 2 Zustände unterschiedliche Breite haben? –
Sprechen Sie über das Verpacken eines oder mehrerer Bools in einem integrierten Typ? –
Beziehen Sie sich auf die Größe im Speicher? Wenn dies der Fall ist, ist es compilerabhängig für bool. In 99,9% nimmt es 1 Bit auf, da es wahr oder falsch, ein oder aus darstellt. Die anderen 7 sind jedoch gefüllt, können nicht verwendet werden. Hat das für dich beantwortet? – Emz