Bonjour,
Je dois fournir une valeur constante à une fonction dont le paramètre correspondant n'est aps déclaré comme constant.
Y a-t-il en C l'équivalent du const_cast de C++, pour éviter d'ennuyeux messages du compilateur ?
Merci.
Bonjour,
Je dois fournir une valeur constante à une fonction dont le paramètre correspondant n'est aps déclaré comme constant.
Y a-t-il en C l'équivalent du const_cast de C++, pour éviter d'ennuyeux messages du compilateur ?
Merci.
C'est pas très clair. Tu veux dire qu'un fonction peut modifier une variable via un pointeur et que tu veux quand même lui passer l'adresse d'une variable non modifiable ? Faut pas faire ça. Comportement indéfini.
Evidemment, un cast peu faire l'affaire, mais il ne résout rien. Il se contente de masquer le problème...
Peux tu donner un exemple de code ?
Tu as effectivement compris ce que je voulais faire.
Même si cela paraît abscon, il y a une raison : je n'ai pas la main sur la définition de la variable, et je n'ai pas la main sur la définition de la fonction (j'utilise une API).
MAIS je sais que la fonction ne modifiera pas la variable (utilisée comme opérande d'une multiplication matricielle). Disons que je lui fais confiance...
C'est l'interface de la fonction qui est mal faite alors...
Du moment que tu sais ce que tu fais...
Code : Sélectionner tout - Visualiser dans une fenêtre à part fonction ((TYPE*)adresse);
Nous sommes bien d'accord. :-)
Je savais pour le type, mais il s'agit là d'un qualificateur const.Du moment que tu sais ce que tu fais...
Code : Sélectionner tout - Visualiser dans une fenêtre à part fonction ((TYPE*)adresse);
J'ai besoin de convertir un const en non const, puis de donner son adresse en paramètre à la fonction.
C'est très exactement ce que fait l'exemple que j'ai donné
Rappel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part fonction ((TYPE*)adresse);
Partager