Maison > développement back-end > C++ > Comment gérer les avertissements de conversion obsolètes de GCC de la constante de chaîne vers « char* » ?

Comment gérer les avertissements de conversion obsolètes de GCC de la constante de chaîne vers « char* » ?

Susan Sarandon
Libérer: 2024-12-05 11:20:12
original
608 Les gens l'ont consulté

How to Handle GCC's Deprecated Conversion Warnings from String Constant to `char*`?

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;
}
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