again: sizeof(wchar_t)
Graham Nash
gnash@ncube.com
Mon Apr 26 22:50:00 GMT 2004
I have built a GCC cross-compiler (Solaris and linux to our odd
platform) and this automatically defines __WCHAR_TYPE__ which is used as
the basis for a kind of definition of wchar_t:
typedef __WCHAR_TYPE__ __gwchar_t
(see inttypes.h). It appears to default to "int" so can be used in a
sizeof(expression).
I'm using 3.2.2 so it may have all gotten changed since then.
--g
Artem B. Bityuckiy wrote:
> Eljay Love-Jensen wrote:
>
>> Hi Artem,
>>
>> Use:
>> #if WCHAR_BITSIZE == 16
>> blah blah blah
>> #elif WCHAR_BITSIZE == 32
>> blah blah blah
>> #else
>> #error Unsupported/unknown wchar_t bitsize.
>> #endif
>>
>> When you are compiling your code with 32-bit wchar_t:
>> g++ -DWCHAR_BITSIZE=32 foo.cpp
>>
>> When you are compiling your code with 16-bit wchar_t:
>> g++ -DWCHAR_BITSIZE=16 foo.cpp
>
>
> The specific is that I'm upgrading Newlib itself. I'm adding locale
> and some C99 features support to it (Newlib isn't fully C99
> complient). This is bad way to use such hack. This is like MAX_INT
> macro. Do you imagine, for example, glibc requires you to compile it
> with make CFLAGS+=-DMAX_INT=32? (this is just analogy) :-)
> I hope there is some other way exists...
>
> Thanks.
>
>
More information about the Gcc-help
mailing list