J'ai trouvé un commentaire de l'utilisateur R .. :
C et C++ ne sont pas le même langage. En particulier, C
const
n'a rien à voir avec C++const
.
Je sais qu'une différence entre le qualificatif const
en C et le qualificatif const
en C++ est sa liaison par défaut.
Un objet déclaré à la portée de l'espace de noms avec le qualificatif const
en C++ a une liaison interne, tandis qu'en C un objet avec le qualificatif const
déclaré à la portée globale (sans avoir de qualificatif static
avant const
) a un lien externe.
Mais comment diffèrent-ils tous les deux entre les langages C et C++? J'ai pensé que les deux avaient le même genre de concept et de but dans les deux langues.
Ma question:
Les réponses à En quoi "const" diffère-t-il en C et C++? ne pointent pas une différence exacte entre les langages de C et C++ dans le contexte du qualificatif const
. Seulement ce que vous ne pouvez pas faire ou ne pouvez pas en faire dans une certaine langue.
De cppreference.com :
Le qualificatif
const
utilisé sur une déclaration d'une variable non-inline non-locale non volatile non-template (depuis C++ 14) non-inline (depuis C++ 17) qui n'est pas déclaréeextern
lui donne un lien interne. Ceci est différent de C où les variables de portée de fichierconst
ont un lien externe.
Autre que cela, const
a la même sémantique en C et C++ et les en-têtes C avec const
sont souvent compilés comme en-têtes C++ avec "extern C"
.