Bitfields

Moin,

eine nette kleine Hilf für den embedded Programmierer (ich kannte das so noch nicht)

#include <iostream>

using namespace std;

struct Bitfield {
	int val1: 5;
	int val2: 3;
};

int main(int argc, char** args) {
	Bitfield bf;
	bf.val1 = 1;
	bf.val2 = 2;
	cout << "sizeof: " << sizeof(Bitfield) << endl;
	cout << "Bitfield: " << *((int*)&bf) << endl;
}

mogel@dominatrix> g++ bitfield.cpp && ./a.out
sizeof: 4
Bitfield: 65

ich erspare mir mal die Erläuterungen und Verweise einfach - http://www.cpp-tutor.de/cpp/le08/bitfelder.html - außerdem ist da ein viel schöners Beispiel wo das sehr nützlich ist

Kombiniert mit Unions kann man so sauber Datagramme diverser Protokolle abbilden :wink: