On Thu, Feb 13, 2020 at 9:24 PM Henri Augusto Bisognini <[email protected]> wrote: > > Quick C question: i was taking a look at struct _editor and I've noticed that > the bitfields sum up to 6 with no (2 bits) padding for alignment. > > typedef struct _editor > { > t_updateheader e_upd; /* update header structure */ > [...] > unsigned int e_onmotion: 3; /* action to take on motion */ > unsigned int e_lastmoved: 1; /* one if mouse has moved since click */ > unsigned int e_textdirty: 1; /* one if e_textedfor has changed */ > unsigned int e_selectedline: 1; /* one if a line is selected */ > t_clock *e_clock; /* clock to filter GUI move messages */ > int e_xnew; /* xpos for next move event */ > [...] > > } t_editor; > > > All the resources I've found on google used some padding (either manually or > with a zero value). > > My guess here is that since the next member is not a bit field then the > compiler will align it for you. Is that right?
They are all unsigned ints with some of their bits used, so they are aligned already to whatever bit-size ints are. Martin _______________________________________________ Pd-dev mailing list [email protected] https://lists.puredata.info/listinfo/pd-dev
