Подтвердить что ты не робот

Почему "массив" помечен как зарезервированное слово в Visual С++?

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

4b9b3361

Ответ 1

Это не зарезервированное слово по стандартам ИСО. Microsoft С++/CLI определяет массив в пространство имен cli, а подсветка синтаксиса Visual Studio будет рассматривать его как зарезервированное слово. Это использование будет рассматриваться как расширение поставщика, а не часть любого международного стандарта 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 С++ 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

Ответ 3

Он используется в С++/CLI.

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

Ответ 4

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

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

Ответ 5

В каком издании? Поиск Google для "зарезервированных слов С++" не показывает такого использования.

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

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

Ответ 6

Это не зарезервированное слово, но Microsoft visual studio решила отметить его блюз, как если бы это было зарезервированное слово, но это, безусловно, не соответствует "С++ Programming 5th Edition" Д.Д. Малик.

Ответ 7

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