J'ai essayé la ligne suivante:
static const const char* values[];
mais je reçois l'avertissement suivant sur le C4114 d'avertissement de VC: même qualification de type utilisé plus d'une fois.
Quelle est la déclaration correcte?
modifier:
L'objectif est de créer un tableau immuable de chaînes cComment créer un tableau const statique de const char *
Répondre
Vous avez écrit const const
au lieu de static const char* const values[];
(où vous définissez le pointeur et les valeurs sous-jacentes comme const
)
En outre, vous devez l'initialiser:
static const char* const values[] = {"string one", "string two"};
+1, mais, l'initialisation dépend du contexte, si c'est un membre 'static' d'une classe (ma conjecture), puis aucune initialisation peut être fait dans la déclaration ... –
Est-ce que je comprends bien, le premier const est pour la chaîne et le second pour le tableau? – Tommy
Pour clarifier le mot clé 'const': Un' const' est toujours lié à l '"item" qui lui est laissé. L'exception de ceci est, quand const est le premier mot dans l'expression, alors il se rapporte à l'article juste à lui. Donc, pour être super-correct, on définirait la chaîne comme 'char statique const * const values []', qui peut être lu de droite à gauche: values est un tableau de pointeurs const sur const chars et tout cela est statique. – AquilaRapax
Essayez
static const char* const values[];
L'idée est de mettre les deux const
s de chaque côté de *
: la gauche appartient à char
(caractère constant), le droit appartient à char*
(pointeur constant à caractère)
En aparté, c'est la même chose que 'static char const const * const values []' – Dennis
- 1. C: Affectation « static const char * const » à « const char * statique »
- 2. Comment déclarer un tableau const const statique dans Swift?
- 3. Tableau de const char *
- 4. Création d'un tableau const char * const *
- 5. const char * vs const char []
- 6. const char const * char [] compiler warning
- 7. Coulée const char * à non const char *
- 8. extern const char * pointeur const ou un tableau extern const char [] cause de lien erreur
- 9. comment initialiser const char ** tableau
- 10. Remplacement de la valeur du tableau const const statique
- 11. Const. Statique Const
- 12. convertir const char ** en const char *
- 13. casting char chaîne dans le tableau de membre const statique
- 14. const char * nom vs const char * nom
- 15. Comment transformer const char * en caractère statique char XY []?
- 16. C++ surcharge chaîne de const statique vs tableau char
- 17. Passer un tableau char non-const pour fonctionner comme un tableau const char est possible?
- 18. comment convertir * const WCHAR à const char *
- 19. Comment convertir const char * à const WCHAR *
- 20. Initialiser un const char **
- 21. Tableau de chaînes Swift en const char * const *
- 22. comment diviser un const char *?
- 23. C/C++ Initialiser tableau char const char *
- 24. Créer un const const * en utilisant
- 25. ne peut pas convertir 'const char **' en 'const char *'
- 26. const char ** et free()
- 27. const char ** et char **
- 28. ne peut pas convertir 'const char *' en 'char * const *'
- 29. C++: Signification de const char * const *
- 30. C++ char à const char *
Que voulez-vous créer? Un tableau de pointeurs constants aux caractères constants? –