Синтаксис Visual Studio выделяет это слово синим, как будто это ключевое слово или зарезервированное слово. Я попытался выполнить поиск в Интернете, но слово "массив" выбрасывает поиск, я получаю в основном страницы, объясняющие, что такое массив. Для чего он используется?
Почему "массив" помечен как зарезервированное слово в Visual С++?
Ответ 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
Ответ 2
Это не так. По крайней мере, не в стандартном C/С++.
Теперь вы можете спросить, почему "запись" была зарезервированным словом в C в K & R, но не на C99 - кто-то думал, что они могут добавить эту функцию в в какой-то момент, но в конечном итоге решил против него.
Ответ 3
Он используется в С++/CLI.
Справочник по языку Visual С++: "Ключевое слово массива позволяет создавать динамический массив, который выделяется в общей куче времени выполнения".
Ответ 4
Visual Studio никогда не беспокоилась об определении разных грамматик С++ для своего красивого принтера. ISO С++, VС++, С++/CLI или просто старый C - все имеют одну и ту же грамматику. Итак, имена, подобные массиву и интерфейсу, обрабатываются так, как если бы они были ключевыми словами.
Было бы довольно сложно, чтобы симпатичный принтер обнаружил диалект С++, используемый в foo.cpp. Вам нужно будет скомпилировать код для этого. В настоящий момент симпатичный принтер может работать с токенами, что означает, что ему нужно только разобрать код.
Ответ 5
В каком издании? Поиск Google для "зарезервированных слов С++" не показывает такого использования.
Я обычно использую "массив" в примере кода.
Ответ 6
Это не зарезервированное слово, но Microsoft visual studio решила отметить его блюз, как если бы это было зарезервированное слово, но это, безусловно, не соответствует "С++ Programming 5th Edition" Д.Д. Малик.
Ответ 7
Тот факт, что слово, освещенное в MSVC, не означает, что это ключевое слово C/С++. Как вы можете видеть, в нем также выделяются многие нестандартные вещи, такие как __int64
или даже __int128
, хотя в VC нет 128-битного типа int.