Почему «массив» помечен как зарезервированное слово в Visual-C++?

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

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
34
0
16 638
7

Ответы 7

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

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

"запись" не зарезервировано

warren 16.12.2008 23:51

Это не зарезервированное слово по стандартам ISO. C++ / CLI Microsoft определяет множество в 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

В какой редакции? Поиск в Google по запросу "зарезервированные слова C++" не показывает такого использования.

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

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

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

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

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

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

С другой стороны, он уже содержит больше информации, чем простой синтаксический анализ, то есть Intellisense. Думаю, М.С. никогда не думал, что это того стоит.

Skurmedel 16.07.2009 03:29

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

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

Другие вопросы по теме