Maison > développement back-end > C++ > Pourquoi les constantes à plusieurs caractères en C provoquent-elles des avertissements et comment peuvent-elles être évitées ?

Pourquoi les constantes à plusieurs caractères en C provoquent-elles des avertissements et comment peuvent-elles être évitées ?

Mary-Kate Olsen
Libérer: 2024-12-18 20:51:11
original
386 Les gens l'ont consulté

Why Do Multi-Character Constants in C Cause Warnings and How Can They Be Avoided?

Avertissements de constantes multi-caractères en C

En C, des avertissements de constantes multi-caractères sont émis lorsqu'une constante entière contient plus d'un caractère . Considérons le code suivant :

int waveHeader = 'EVAW';
Copier après la connexion

Ce code générera un avertissement car la constante entière 'EVAW' contient quatre caractères.

Selon la norme C (§6.4.4.4/10) , la valeur d'une constante entière à plusieurs caractères est définie par l'implémentation. Cela signifie que différents compilateurs peuvent interpréter la constante différemment. Par exemple, le code suivant peut être compilé sans avertissement sur un compilateur et avec un avertissement sur un autre :

long x = '\xde\xad\xbe\xef';
Copier après la connexion

Pour éviter d'éventuels problèmes de portabilité, il est recommandé de ne pas utiliser de constantes à plusieurs caractères avec des types intégraux. Envisagez plutôt d'utiliser des nombres « sans signification » ou de définir des variables const avec la même valeur.

Par exemple, le code suivant serait plus portable que l'exemple ci-dessus :

#define EVAW 'EVAW'
int waveHeader = EVAW;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal