@ BjörnPollex, он используется IDE, но не должен конфликтовать с синтаксисом языка, и компилятор также должен его принять.
Дарин Димитров
1
#regionдля C # это допустимый синтаксис и очерчивает область кода. Visual Studio позволяет складывать их как функцию IDE.
Thanatos
10
Вы не можете использовать #region , чтобы сделать код более удобным для чтения, #region делает вам код проще не читать.
jk.
Я предлагаю строковый комментарий, за которым следует оператор блока.
Grault
Ответы:
91
Регион Ключевое слово является IDE специфичны и влияет на рендеринг в Visual Studio. Ближайший эквивалент - #pragma Region, который применим только к Visual Studio.
если это только для IDE, следует ли мне беспокоиться о компиляции кода #pragma region? Есть ли компилятор C, который это отрицает? Есть ли какие-то последствия? Спасибо
Рамон Диас
Только что проверил с помощью Mingw. Использование gcc -Wall, показывает предупреждения о неизвестных прагмах. Нравится: warning: ignoring #pragma region test [-Wunknown-pragmas]иwarning: ignoring #pragma endregion [-Wunknown-pragmas]
Рамон Диас
28
В дополнение к #pragma region… #pragma endregionдля Visual Studio многие IDE поддерживают следующий синтаксис для регионов на любом языке с {}ограничениями и //комментариями:
Только что попробовал, не получается (Visual Studio 2013 Community Edition)
Стефан Фабиан
Я бы посоветовал добавить заголовок перед открывающей скобкой, чтобы после его свертывания вы все еще могли видеть имя (по крайней мере, в других компиляторах).
Emad Y
12
В C ++ нет эквивалента. Однако в IDE должна быть возможность сворачивать разделы.
Также можно использовать что-то вроде этого:
#pragmaregion#pragmaendregion A comment about the region.
Поэтому, когда вы говорите, что такого эквивалента нет, вы ошибаетесь, потому что #pragma regionэто , по сути, его функциональный эквивалент.
Дмитрий Нестерук
8
@DmitriNesteruk - нет, это не так, если вы используете любую IDE, кроме Visual Studio. #regionопределено в спецификации, и IDE, которые соответствуют спецификации, должны разрешать сворачивание регионов - этого нельзя сказать #pragma region.
Oded
9
Я использовал
#ifndef ANY_NAME_FOR_THIS_REGION
...
#endif
для нескольких проектов за последние пару лет и это меня устраивает (в том числе разборные блоки). В качестве дополнения я могу отключить блок, используя #define ANY_NAME_FOR_THIS_REGION чуть выше него.
#if 1 даже проще, чем #ifndef, но ... он не требует использования символа для описания цели этой области (имя, следующее за #ifndef) - я знаю, что вы можете добавить или добавить комментарий к "#if 1" ", но не в среде IDE. Честно говоря, я до сих пор используют «#if 1..else..endif» только тогда , когда мне нужно выполнить только один из двух блоков кода (один блок XOR другой)
Drout
2
Просто дополнение к другим ответам. Определение региона варьируется от IDE к IDE.
Для разработки Mac в Xcode вы можете использовать прагму:
#region
для C # это допустимый синтаксис и очерчивает область кода. Visual Studio позволяет складывать их как функцию IDE.Ответы:
Регион Ключевое слово является IDE специфичны и влияет на рендеринг в Visual Studio. Ближайший эквивалент - #pragma Region, который применим только к Visual Studio.
Пример кода из MSDN
// pragma_directives_region.cpp #pragma region Region_1 void Test() {} void Test2() {} void Test3() {} #pragma endregion Region_1 int main() {}
источник
#pragma region
? Есть ли компилятор C, который это отрицает? Есть ли какие-то последствия? СпасибоMingw
. Использованиеgcc -Wall
, показывает предупреждения о неизвестных прагмах. Нравится:warning: ignoring #pragma region test [-Wunknown-pragmas]
иwarning: ignoring #pragma endregion [-Wunknown-pragmas]
В дополнение к
#pragma region
…#pragma endregion
для Visual Studio многие IDE поддерживают следующий синтаксис для регионов на любом языке с{}
ограничениями и//
комментариями://{ Region header text. … //}
Известные примеры включают Code :: Blocks и FlashDevelop , а также любой другой редактор, использующий компонент редактирования Scintilla , такой как Notepad ++ , Geany , Komodo Edit и многие другие.
источник
В C ++ нет эквивалента. Однако в IDE должна быть возможность сворачивать разделы.
Также можно использовать что-то вроде этого:
#pragma region #pragma endregion A comment about the region.
Но наверное не очень портативный
источник
Нет эквивалента. Эта
#region
функция является частью спецификации C #.В C ++ такого эквивалента нет. Вы могли бы имитировать это с помощью специально отформатированных комментариев, но это будет зависеть от редактора.
Для Visual Studio вы можете использовать:
#pragma region name ... #pragma endregion name
источник
#pragma region
это , по сути, его функциональный эквивалент.#region
определено в спецификации, и IDE, которые соответствуют спецификации, должны разрешать сворачивание регионов - этого нельзя сказать#pragma region
.Я использовал
#ifndef ANY_NAME_FOR_THIS_REGION ... #endif
для нескольких проектов за последние пару лет и это меня устраивает (в том числе разборные блоки). В качестве дополнения я могу отключить блок, используя #define ANY_NAME_FOR_THIS_REGION чуть выше него.
источник
Просто дополнение к другим ответам. Определение региона варьируется от IDE к IDE.
Для разработки Mac в Xcode вы можете использовать прагму:
#pragma mark
источник
C ++ Builder делает это поддерживать, но вы должны объявить регион:
#pragma region BLAH ..... #pragma end_region
Вы должны использовать end_region для C ++ Builder, но он будет работать, и это будет свернуть регион!
источник
Кейт, KDevelop и все другие текстовые редакторы и Иды , которые используют Katepart поддерживает разметку областей с
//BEGIN
и//END
маркеры.// BEGIN GPT entity types #define GPT_ENT_TYPE_UNUSED \ {0x00000000,0x0000,0x0000,0x00,0x00,{0x00,0x00,0x00,0x00,0x00,0x00}} #define GPT_ENT_TYPE_EFI \ {0xc12a7328,0xf81f,0x11d2,0xba,0x4b,{0x00,0xa0,0xc9,0x3e,0xc9,0x3b}} #define GPT_ENT_TYPE_MBR \ {0x024dee41,0x33e7,0x11d3,0x9d,0x69,{0x00,0x08,0xc7,0x81,0xf3,0x9f}} // END
Вы сможете свернуть область, определенную таким образом.
источник
Нет эквивалента.
Большинство хороших редакторов или IDE позволят вам свернуть функции, если не также
if
/else
/while
/for
/ и т. Д.источник
В первом ответе на этот вопрос упоминается еще одна альтернатива. Однако это применимо не во всех ситуациях.
Метод: используйте вместо него {...}, который изначально поддерживает сворачивание кода в Visual Studio.
Включите опцию: Инструменты -> Параметры -> Текстовый редактор -> C / C ++ -> Форматирование -> Блоки операторов OutLine -> True.
Поместите ваш в разные области видимости {...}, тогда код свернется в разные области:
источник