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 ?
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';
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';
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;
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!