The information in this article applies to:
SYMPTOMSThe sizeof('x') or sizeof(L'x') constants do not return expected results. In C, the return value is 4 for the sizeof character constant and 2 for the sizeof multicharacter constant. In C++, the return value is 1 for the sizeof character constant and 2 for the sizeof multicharacter constant. CAUSEThe specification on this point is different for C from what it is for C++. In C, a character constant is of type int. In C++, a character constant is of type char. Multicharacter constants are implementation dependent. RESOLUTIONWhen using C, do not use sizeof to determine the width of a character constant. Use sizeof("") to give the width of one character in both C and C++. STATUSThis behavior is by design. REFERENCESFor more information, see "The Annotated C++ Reference Manual" by Margaret Ellis and Bjarne Stroustrup, Section 2.5.2. Additional query words: 2.00 2.10 2.20 4.00 4.10
Keywords : kbCompiler kbCRT kbVC |
Last Reviewed: January 14, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |