...
Note that in the UTF-16 character set, 0xFFFF is guaranteed not to be a character, which leaves room for WEOF to be chosen as the value −1. In 16-bit EUC (Extended UNIX Code), the high byte can never be 0xFF, so a conflict cannot occur at all. Similarly, all UTF-32 characters are positive when viewed as a signed 32-bit integer. Consequently, it would require a custom character set designed without consideration of the C programming language for this problem to occur with wide characters or with ordinary characters that are as wide as int.
...