So I want other people's opinions on a couple of programming practices I've been using on and off.
First using enum types (in C) to define multiple constants in a group, for example creating a enum type for GDT flags bitmasks.
I know I'm making a type for these constants that I never actually use but should I just convert this into a series of #defines?
And then if I use bit packed structs to make bitmasks using bool types for values that don't have a particular location ie a set of flags for my own implementation of driver management, would I have to worry about different compilers putting bits in different orders?
Thoughts on enum types and bit packing
Re: Thoughts on enum types and bit packing
The two are equivalent in most cases. Only difference is, macros can be used in #if. Otherwise there is not much of a difference.pANZERNOOb wrote:So I want other people's opinions on a couple of programming practices I've been using on and off.
First using enum types (in C) to define multiple constants in a group, for example creating a enum type for GDT flags bitmasks.
I know I'm making a type for these constants that I never actually use but should I just convert this into a series of #defines?
If all compilers follow the same ABI, or at least all ABIs say the same about bitfields, or you only ever compile the entire project with one compiler at a time, there is nothing to worry about. You should start worrying when you want to transmit such a structure somewhere, whether into shared memory, a file, or network.pANZERNOOb wrote:And then if I use bit packed structs to make bitmasks using bool types for values that don't have a particular location ie a set of flags for my own implementation of driver management, would I have to worry about different compilers putting bits in different orders?
Carpe diem!