7.24.1 Introduction

1

The header <wchar.h> declares four data types, one tag, four macros, and many functions.[1]

2

The types declared are wchar_t and size_t (both described in 7.17);

mbstate_t

which is an object type other than an array type that can hold the conversion state information necessary to convert between sequences of multibyte characters and wide characters;

wint_t

which is an integer type unchanged by default argument promotions that can hold any value corresponding to members of the extended character set, as well as at least one value that does not correspond to any member of the extended character set (see WEOF below);[2] and

struct tm

which is declared as an incomplete structure type (the contents are described in 7.23.1).

3

The macros defined are NULL (described in 7.17); WCHAR_MIN and WCHAR_MAX (described in 7.18.3); and

WEOF

which expands to a constant expression of type wint_t whose value does not correspond to any member of the extended character set.[3] It is accepted (and returned) by several functions in this subclause to indicate end-of-file, that is, no more input from a stream. It is also used as a wide character value that does not correspond to any member of the extended character set.

4

The functions declared are grouped as follows:

  • Functions that perform input and output of wide characters, or multibyte characters, or both;

  • Functions that provide wide string numeric conversion;

  • Functions that perform general wide string manipulation;

  • Functions for wide string date and time conversion; and

  • Functions that provide extended capabilities for conversion between multibyte and wide character sequences.

5

Unless explicitly stated otherwise, if the execution of a function described in this subclause causes copying to take place between objects that overlap, the behavior is undefined.

Footnotes