Letras com diacríticos

Sinais diacríticos são os acentos e o til que se colocam sobre vogais (produzindo á, ã, é, etc.) e a cedilha que se coloca sob a letra c (produzindo ç).

O padrão C99 da linguagem C (e os padrões posteriores) permite letras com diacríticos em nomes de variáveis e funções.  Mas as letras com diacríticos precisam ser representados no arquivo-fonte do seu programa por meio de seus números Unicode. Por exemplo, se quiser uma variável com nome preço, você precisa digitar pre\u00E7o.  Isso torna o recurso inútil na prática…

No caso de constantes-caracteres, entretanto, as coisas são mais simpáticas: letras com diacríticos podem ser digitadas diretamente, desde que a variável de ambiente  LC_CTYPE  do seu sistema tenha valor  pt_BR.UTF-8  ou  en_US.UTF-8.  (Digite locale no terminal para saber o valor dessa variável no seu sistema Linux.)  Por exemplo,

char mensagem[11] = "Atenção!";
printf( "%s\n", mensagem);

produz

Atenção!

(Note que a string "Atenção!" ocupa 11 bytes pois ç e ã ocupam 2 bytes cada na codificação UTF-8.)