Pourquoi" array " est marqué comme un mot réservé dans Visual-C++?

syntaxe Visual Studio mettant en évidence les couleurs de ce mot bleu comme s'il s'agissait d'un mot-clé ou d'un mot réservé. J'ai essayé de le chercher en ligne mais le mot "tableau" bloque la recherche, je reçois surtout des pages expliquant ce qu'est un tableau. À quoi sert-il?

33
demandé sur Deduplicator 2008-12-16 23:31:13

7 réponses

ce n'est pas un mot réservé selon les normes ISO. Le C++/CLI de Microsoft définit array dans le cli namespace , et la mise en évidence syntaxique de Visual Studio le traitera comme un mot réservé. Cette utilisation serait considérée comme une extension du fournisseur et ne ferait pas partie d'un standard C ou c++ international.

ISO C99 mots clés:

auto        enum        restrict    unsigned
break       extern      return      void
case        float       short       volatile
char        for         signed      while
const       goto        sizeof      _Bool
continue    if          static      _Complex
default     inline      struct      _Imaginary
do          int         switch
double      long        typedef
else        register    union

ISO C++98 Mots clés:

and         double          not                 this 
and_eq      dynamic_cast    not_eq              throw 
asm         else            operator            true 
auto        enum            or                  try 
bitand      explicit        or_eq               typedef 
bitor       export          private             typeid 
bool        extern          protected           typename 
break       false           public              union 
case        float           register            unsigned 
catch       for             reinterpret_cast    using 
char        friend          return              virtual 
class       goto            short               void 
compl       if              signed              volatile 
const       inline          sizeof              wchar_t 
const_cast  int             static              while 
continue    long            static_cast         xor 
default     mutable         struct              xor_eq
delete      namespace       switch     
do          new             template
63
répondu Judge Maygarden 2008-12-16 22:06:05

ça ne l'est pas. Du moins pas en C/C++standard.

Maintenant vous pourriez bien demandez la raison "entry" était un mot réservé dans C dans K & r mais pas dans C99 - quelqu'un a pensé qu'ils pourraient ajouter la fonctionnalité à un moment donné, mais finalement décidé contre elle.

11
répondu Paul Tomblin 2017-05-23 12:24:56

il est utilisé en C++/CLI.

Visual C++ Language référence: " le mot-clé array vous permet de créer un tableau dynamique qui est alloué sur le tas de langage courant d'exécution."

10
répondu jeffm 2016-04-26 16:25:32

Visual Studio n'a jamais pris la peine de définir des grammaires C++ différentes pour leur jolie imprimante. ISO C++, VC++, C++/CLI, ou tout simplement vieux C - tous partagent la même grammaire. Ainsi, les noms comme array et interface sont tous traités comme s'ils étaient des mots-clés.

il serait également assez difficile pour la jolie imprimante de repérer le dialecte C++ Utilisé dans foo.rpc. Vous devez compiler le code pour ça. Actuellement, la jolie imprimante peut fonctionner sur les jetons, ce qui signifie qu'il ne doit l'analyser code.

2
répondu MSalters 2008-12-17 11:07:25

dans quelle édition? Une recherche sur Google pour "C++ mots réservés" ne montre aucun tel usage.

j'utilise couramment" array " dans le code d'échantillon.

http://cs.smu.ca/~porter/csc/ref/cpp_keywords.html

1
répondu warren 2008-12-16 20:36:34

ce n'est pas un mot réservé, mais Microsoft visual studio a décidé de marquer le blues comme s'il s'agissait d'un mot réservé, mais ce n'est certainement pas selon" programmation C++ 5e édition " par D. D. Malik.

0
répondu sdaf 2013-04-24 15:47:28

le fait qu'un mot soit mis en évidence dans MSVC ne signifie pas que c'est un mot-clé C/C++. Comme vous pouvez le voir, il met également en évidence de nombreuses choses non-standard comme __int64 , ou même __int128 bien qu'il n'y ait pas de type int 128-bit en VC.

0
répondu phuclv 2015-09-05 16:57:23