Почему «массив» помечен как зарезервированное слово в Visual-C ++? - PullRequest
34 голосов
/ 16 декабря 2008

Синтаксис Visual Studio выделяет это слово синим цветом, как если бы оно было ключевым словом или зарезервированным словом. Я попытался найти его в Интернете, но слово «массив» отбрасывает поиск, в основном я получаю страницы, объясняющие, что такое массив. Для чего он используется?

Ответы [ 7 ]

65 голосов
/ 16 декабря 2008

Это не зарезервированное слово в соответствии со стандартами ISO. Microsoft C ++ / CLI определяет массив в cli пространстве имен , а подсветка синтаксиса Visual Studio будет обрабатывать его как зарезервированное слово. Такое использование будет считаться расширением поставщика, а не частью какого-либо международного стандарта C или C ++.

ISO C99 Ключевые слова:

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 Ключевые слова:

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
11 голосов
/ 16 декабря 2008

Это не так. По крайней мере, не в стандарте C / C ++.

Теперь вы вполне могли бы спросить, почему "запись" была зарезервированным словом в C в K & R , но не в C99 - кто-то думал, что в какой-то момент он может добавить эту функцию, но в конечном итоге решил против этого. 1005 *

10 голосов
/ 17 декабря 2008

Используется в C ++ / CLI.

Справочник по языку Visual C ++:"Ключевое слово array позволяет создавать динамический массив, который размещается в общей динамической памяти языка."

2 голосов
/ 17 декабря 2008

Visual Studio никогда не удосужился определить различные грамматики C ++ для их симпатичного принтера. ISO C ++, VC ++, C ++ / CLI или просто старый C - все имеют одну и ту же грамматику. Таким образом, имена, такие как массив и интерфейс, обрабатываются так, как если бы они были ключевыми словами.

Также довольно красивому принтеру было бы трудно определить диалект C ++, используемый в foo.cpp. Вам нужно скомпилировать код для этого. В настоящее время симпатичный принтер может работать с токенами, что означает, что ему нужно только проанализировать код.

1 голос
/ 16 декабря 2008

В каком издании? В поиске Google «c ++ зарезервированные слова» такого использования нет.

Я обычно использую «массив» в примере кода.

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

0 голосов
/ 27 августа 2014

Тот факт, что слово выделяется в MSVC, не означает, что это ключевое слово C / C ++. Как видите, он также выделяет многие нестандартные вещи, такие как __int64 или даже __int128, хотя в VC нет 128-битного типа int.

0 голосов
/ 24 апреля 2013

Это не зарезервированное слово, но Microsoft visual studio решила пометить его синим, как если бы это было зарезервированное слово, но оно определенно не соответствует «Программированию C ++ 5-е издание» Д.Д. Малик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...