• # Le saviez-vous ?

    Posté par (Mastodon) . En réponse au journal Vous avez dit "caractère" ?. Évalué à 5. Dernière modification le 05 septembre 2022 à 14:29.

    Il faut faire attention avec char, parce qu'il peut être signé ou non-signé. Et que, c'est là que c'est drôle, il n'est équivalent ni à signed char ni à unsigned char (dans le sens où ce sont trois types différents). Et enfin, ça fout toujours le bazar d'avoir des pointeurs sur char parce que les règles d'aliasing disent que char * peut représenter n'importe quoi, un peu comme void *, et donc ça empêche plein d'optimisations.

    À noter qu'il existe depuis C++20 le type char8_t (ainsi que char16_t et char32_t depuis C++11) pour représenter un code unit UTF8 (respectivement UTF16 et UTF32). Je crois que ça va arriver bientôt en C (les deux autres y sont déjà depuis C11).