We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
This should be an easy question, but it's driving me nuts. I'm programming in C51. I need to access the high-byte and the low-byte of a unsigned short variable. How should I do it?
"How should I do it?" (my emphasis) Well, that depends on your criteria for "good" coding practice! There is a Portable way, and a non-portable (but probably quicker) way: The portable way is to mask-off the required byte (High or Low), and to shift the high byte down into the low byte; The non-portable way is to use a union containing the integer and the two separate bytes. This is non-portable because it relies upon the internal data representation used by C51 - for which you will have to consult the manual. The same result can be obtained using an Abstract Pointer (qv). Note that these techniques are not specific to C51; they are standard ANSI 'C' - the only C51-specific bit is knowing the data representation for the non-portable approach.