Splitting out a frame of bytes

Isn't it better to generate a mask by a preprocessor macro when the shift value and data length are #define like OP?