Y a-t-il un compilateur C qui prend le type de caractère par défaut comme non signé, sauf mention explicitement par l'utilisateur dans les paramètres de fichier ou de projet? p>
/ kanu _ p>
3 Réponses :
Il y a généralement une option pour la définir par défaut, mais aucun compilateur de ma connaissance ne le fait. P>
Il y a. Dans MSVC, vous utilisez / j code> (type de caractères de caractères par défaut est non signé)
. Dans GCC, vous utilisez -Funsigned-char code>
GCC fait. Mais uniquement lors de la compilation de plateformes où un caractère non signé est la convention, y compris le bras Linux [*]. Lorsque GCC compile pour X86, la valeur par défaut est pour être signée. P>
[*] ou au moins il a été dans le passé. Pour tout ce que je sais que Linux, Linux est passé à un bras différent de l'ABI par défaut depuis. P>
Mise à jour '2013: B> Compilateurs de bras (GCC, Clang) pour Android NDK par défaut à Unsigné Char code>. Les compilateurs X86 et MIPS par défaut à
signé Char CODE>. P>
La norme nécessite que la valeur entière de tous les caractères requise par la norme (AZ, AZ, 0-9, la ponctuation de base, etc.) soit positive, donc tout système utilisant un codage dans lequel ces valeurs de caractères sont en dehors de la plage. de signé Char code> doit avoir strong> avoir un fichier code> sans signification. Je crois que cela signifie que tous les systèmes EBCDIC doivent avoir un clair
char code> non signé, mais je peux me tromper. P>
Si Char_bit code >> 8 La plage de valeurs pour
Char code> est supérieure à -128..127 ou 0..255. Donc, sur un système EBCDIC avec char_bit == 9, un fichier
char code> peut être signé.