Microsoft KB Archive/150380

= PRB: Sizeof Constant Character Returns Different Values =

Article ID: 150380

Article Last Modified on 10/24/2003

-

APPLIES TO


 * Microsoft Visual C++ 4.0 Professional Edition
 * Microsoft Visual C++ 4.1 Subscription
 * Microsoft Visual C++ 5.0 Learning Edition

-



This article was previously published under Q150380



SYMPTOMS
The 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.



CAUSE
The 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.



RESOLUTION
When 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++.



STATUS
This behavior is by design.

