[elektro] c kerdes
hg12345
hg12345 at freemail.hu
Sat Dec 6 22:24:48 CET 2008
Szia!
Sajna C-ből ezt kihagyták :-(
Nem olvastam végig, de ha 8 byte-t kezelsz akkor (unsgined long long) vagy ha megvan a fix méretű definiciós headered akkor (uint64_t) definiálva a változót 64 bit elérhető. Müveltekkel : or és and esetleg << kezelhető. Nem lesz túl gyors és tömör Ha CCS-t forditot használsz az ismeri a bit nevű változót is ismeri igy tud tömböt is kezelni belőle, de ez nem kompatiilis más forditokkal.
egy igazi C programozó ezt igy csinálni (és nem fogalakoni a hellyel :-)
enum Bool(FALSE=(0==1),TRUE) ; //ezt egyes forditok ismerek
typedef Bool bit;
bit A[8];
Ez nem egy tömör megoldás, (sajnos a bit változó hiánya nagyon hiányzik), de ennél gyorsabb megoldást nem tudsz csinálni.
Az enum definició azért szerencsés mert mindig a forditási opcióhoz igazitja automatikusan a változót. Alapesetben int, de tömöritsé esetén akár char is lehet automatikusan..., ugyan igy signed és unsigned.....
Fuzesi Arnold <arnold.fuzesi.lista at gmail.com> írta:
> Hogy tudnam ezt megvalósítani C-ül?
>
> typedef struct{
> union{
> struct{
> uchar bit: 1;
> }a[8];
> uchar A;
> }alarm[2];
> }sys_stat;
>
> for(loop0=ID_IN0;loop0<ID_IN3+1;loop0++){
> if(cfg.in[loop0].changed_state) sys_stat.alarm[0].a.bit[0]=1;
> }
>
> ami gond, a bit nevű bitmezőt szeretném tömbösíteni, címezni...
>
> Köszi,
> Arnold
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list