Interview Questions

I am starting to think about multinational character sets

C Interview Questions and Answers


(Continued from previous question...)

I am starting to think about multinational character sets

Q: I'm starting to think about multinational character sets, and I'm worried about the implications of making sizeof(char) be 2 so that 16-bit character sets can be represented.

A:If type char were made 16 bits, sizeof(char) would still be 1, and CHAR_BIT in <limits.h> would be 16, and it would simply be impossible to declare (or allocate with malloc) a single 8-bit object.
Traditionally, a byte is not necessarily 8 bits, but merely a smallish region of memory, usually suitable for storing one character. The C Standard follows this usage, so the bytes used by malloc and sizeof can be more than 8 bits. (The Standard does not allow them to be less.)
To allow manipulation of multinational character sets without requiring an expansion of type char, ANSI/ISO C defines the ``wide'' character type wchar_t, and corresponding wide string literals, and functions for manipulating and converting strings of wide characters.

(Continued on next question...)

Other Interview Questions