26.5 Characters

ISO Standard: “The number of bits in a byte (C90 3.4, C99 3.6).”
Implementation: 8.
ISO Standard: “The values of the members of the execution character set (C90 and C99 5.2.1).”
ISO Standard: “The unique value of the member of the execution character set produced for each of the standard alphabetic escape sequences (C90 and C99 5.2.2).”
Implementation: The execution character set is ASCII.
ISO Standard: “The value of a char object into which has been stored any character other than a member of the basic execution character set (C90 6.1.2.5, C99 6.2.5).”
Implementation: The value of the char object is the 8-bit binary representation of the character in the source character set. That is, no translation is done.
ISO Standard: “Which of signed char or unsigned char has the same range, representation, and behavior as “plain” char (C90 6.1.2.5, C90 6.2.1.1, C99 6.2.5, C99 6.3.1.1).”
Implementation: By default on PIC32M, signed char is functionally equivalent to plain char.
ISO Standard: “The mapping of members of the source character set (in character constants and string literals) to members of the execution character set (C90 6.1.3.4, C99 6.4.4.4, C90 and C99 5.1.1.2).”
Implementation: The binary representation of the source character set is preserved to the execution character set.
ISO Standard: “The value of an integer character constant containing more than one character or containing a character or escape sequence that does not map to a single-byte execution character (C90 6.1.3.4, C99 6.4.4.4).”
Implementation: The compiler determines the value for a multi-character character constant one character at a time. The previous value is shifted left by eight, and the bit pattern of the next character is masked in. The final result is of type int. If the result is larger than can be represented by an int, a warning diagnostic is issued and the value truncated to int size.
ISO Standard: “The value of a wide character constant containing more than one multibyte character, or containing a multibyte character or escape sequence not represented in the extended execution character set (C90 6.1.3.4, C99 6.4.4.4).”
Implementation: See previous.
ISO Standard: “The current locale used to convert a wide character constant consisting of a single multibyte character that maps to a member of the extended execution character set into a corresponding wide character code (C90 6.1.3.4, C99 6.4.4.4).”
Implementation: LC_ALL
ISO Standard: “The current locale used to convert a wide string literal into corresponding wide character codes (C90 6.1.4, C99 6.4.5).”
Implementation: LC_ALL
ISO Standard: “The value of a string literal containing a multibyte character or escape sequence not represented in the execution character set (C90 6.1.4, C99 6.4.5).”
Implementation: The binary representation of the characters is preserved from the source character set.