The information in this article applies to:
SYMPTOMSWhen an application uses the pack pragma, C/C++ the compiler generates the following message: Microsoft Visual C++ 5.0 generates a different warning:
CAUSEThe pragma pack argument differs from the structure packing option specified on the compiler command line. This warning was added to the compiler because third-party tools can change the performance of user code by including a pragma pack message in library include files. The warning message is designed to indicate potential bugs in code under development. RESOLUTIONIf the code restores the pack argument to the structure packing option specified on the compiler command line, the warning does not occur. The sample code below demonstrates restoring the compiler default. MORE INFORMATION
The pack pragma and the /Zp compiler option each pack data structures to a
specified byte boundary. For example, if a structure requires 9 bytes of
storage and the compiler command line includes the /Zp1 option or the code
includes the #pragma pack(1) statement, the compiler reads and writes 9
bytes of information when it accesses the structure. If the compiler
command line includes the /Zp2 option or the code includes the #pragma
pack(2) statement, the compiler reads and writes 10 bytes when it accesses
the structure.
If the code includes the pack pragma, the compiler determines whether the /Zp<x> option is specified, where <x> is 1 (the default when no number is specified), 2, 4, 8, or 16. If the compiler command line does not specify the /Zp option, the compiler packs structures on 2-, 4-, or 8-byte boundaries depending on the compiler version. The compiler generates a warning if a header file changes the structure packing boundary and does not restore it to the value it before the end of the file. Sample Code
Additional query words: 8.00 8.00c 9.00 9.10
Keywords : kbCompiler kbVC100 kbVC150 kbVC151 kbVC200 kbVC210 kbVC400 kbVC410 kbVC420 kbVC500 kbVC600 |
Last Reviewed: July 6, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |