I am looking for an elegant alternative of the following code where
wordXX contains always 16 bits:
uint64_t wordHi = 0xaa; // I would like u_int16_t over u_int64_t here uint64_t wordMi = 0xbb; // because it represents the real data better uint64_t wordLo = 0xcc; uint64_t largeword = (wordHi << 32) + (wordMi << 16) + (wordLo << 0);
To me this (very simplified) code looks a bit dirty, because reader gets confused about the real size of the
I could store
largeword and then shift
largeword and add
wordMi and so on, but this would make the code worse and probably needs more CPU cycles.
uint64_t in the example as suggested in the comments.