Constantes do Tipo Caractere Largo
Uma constante do tipo caractere largo (wide char) representa caracteres com mais de 8 bits no código do caractere. Esta é uma funcionalidade pouco comum que precisamos documentar, mas que provavelmente você nunca usará. Se você está apenas aprendendo C, pode ignorar esta seção.
A constante original do tipo caractere largo em C é escrita como ‘L’ (maiúscula!) seguida imediatamente por uma constante de caractere comum (sem espaço intermediário). Seu tipo de dado é wchar_t
, que é um alias definido em stddef.h
para um dos tipos de inteiro padrão. Dependendo da plataforma, pode ser de 16 bits ou 32 bits. Se for de 16 bits, essas constantes de caractere usam a forma UTF-16 do Unicode; se forem de 32 bits, usam o UTF-32.
Também existem constantes Unicode do tipo caractere largo que especificam explicitamente a largura. Essas constantes começam com ‘u’ ou ‘U’ em vez de ‘L’. O prefixo ‘u’ especifica uma constante Unicode de 16 bits, e o prefixo ‘U’ especifica uma constante Unicode de 32 bits. Seus tipos são, respectivamente, char16_t
e char32_t
; esses tipos são declarados no arquivo de cabeçalho uchar.h
. Essas constantes de caractere são válidas mesmo se uchar.h
não for incluído, mas alguns usos podem ser inconvenientes sem incluir o cabeçalho para declarar esses nomes de tipo.
O caractere representado em uma constante do tipo caractere largo pode ser um caractere ASCII comum. L'a'
, u'a'
e U'a'
são todos válidos e todos iguais a 'a'
.
Em todos os três tipos de constantes do tipo caractere largo, você pode escrever diretamente um caractere Unicode não ASCII na constante; o valor da constante será o código Unicode do caractere. Ou você pode especificar o caractere Unicode com uma sequência de escape (veja Códigos de Caracteres Unicode).
Atualizado
Isto foi útil?