Comment contourner les avertissements concernant la conversion obsolète d'une constante de chaîne en 'char*'
Dans les versions GCC antérieures à 4.3, on pouvait déclarer une variable avec un char * tapez puis attribuez-lui une chaîne littérale. Cependant, GCC 4.3 et versions ultérieures déconseillent cette pratique avec un avertissement. La bonne façon de procéder est de déclarer la variable comme const char *, mais si vous avez une grande base de code et que vous ne souhaitez pas corriger toutes les instances en même temps, il existe un moyen d'étouffer les avertissements.
Pour supprimer ces avertissements, modifiez le type de toutes les fonctions auxquelles vous transmettez des littéraux de chaîne de char * à const char *. C'est la bonne façon de procéder de toute façon, donc si vous voulez réparer quelque chose, corrigez-le correctement.
La raison de cette dépréciation est que les chaînes littérales sont de type const char * et rejettent le const pour les modifier est un comportement indéfini. Pour modifier une chaîne, vous devez copier la chaîne const char * caractère par caractère dans une chaîne char * allouée dynamiquement.
Voici un exemple de la façon de procéder correctement :
#include <iostream> void print(char* ch); void print(const char* ch) { std::cout << ch; } int main() { print("Hello"); return 0; }
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!