Article: Q32841
Product(s): Microsoft C Compiler
Version(s): 1.0,1.5,2.0,4.0,5.0,6.0
Operating System(s):
Keyword(s): kbCompiler kbVC100 kbVC150 kbVC200 kbVC400 kbVC500 kbVC600
Last Modified: 28-SEP-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual C++ for Windows, 16-bit edition, versions 1.0, 1.5
- Microsoft Visual C++, 32-bit Editions, versions 1.0, 2.0, 4.0, 5.0, 6.0
-------------------------------------------------------------------------------
SUMMARY
=======
An application developed with one of the Microsoft compilers above stores
bitfields from low memory to high memory. For example, consider the following
declaration:
struct x {
unsigned field_one:3;
unsigned field_two:9;
unsigned field_three:5;
};
Compiled with a 16-bit compiler, the above code stores field_one in bits 0- 2 of
the first word, field_two in bits 3-11 of the same word, and field_three in bits
0-4 of the next word (because the field cannot fit in the remaining four bits of
the first word and bit fields do not cross byte boundaries). Compiled with a
32-bit compiler, the same code stores the struct in the 17 least significant
bits of a word.
Additional query words: 8.00 8.00c 9.00
======================================================================
Keywords : kbCompiler kbVC100 kbVC150 kbVC200 kbVC400 kbVC500 kbVC600
Technology : kbVCsearch kbVC400 kbAudDeveloper kbvc150 kbvc100 kbVC500 kbVC600 kbVC200 kbVC32bitSearch kbVC16bitSearch kbVC500Search
Version : :1.0,1.5,2.0,4.0,5.0,6.0
Issue type : kbinfo
=============================================================================