相当于C ++的#region

时间:2012-01-25 09:40:36

标签: c# c++

C ++的#region的C ++等价物是什么,所以我可以放入自定义代码可折叠位并使我的代码更容易阅读?

11 个答案:

答案 0 :(得分:74)

Region keyword是特定于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() {}

答案 1 :(得分:25)

除了Visual Studio的#pragma region ... #pragma endregion之外,许多IDE还支持以下任何{}分隔的区域语法 - 分隔,// - 评论语言:

//{ Region header text.
…
//}

值得注意的示例包括Code::BlocksFlashDevelop,以及使用Scintilla编辑组件的任何其他编辑器,例如Notepad++Geany,{{3还有更多。

答案 2 :(得分:10)

C ++中没有等效词。但是,IDE应该能够折叠部分。

也可以使用这样的东西:

#pragma region

#pragma endregion A comment about the region.

但可能不太便携

答案 3 :(得分:9)

没有等价物。 #region feature是C#规范的一部分。

C ++没有这样的等价物。您可以使用特殊格式的注释来模仿它,但这将是特定于编辑器的。

对于Visual Studio,您可以使用:

#pragma region name
...
#pragma endregion name

答案 4 :(得分:5)

我一直在使用

#ifndef ANY_NAME_FOR_THIS_REGION
    ...
#endif

在过去几年中的几个项目适合我(包括可折叠的块)。作为补充,我可以使用正上方的#define ANY_NAME_FOR_THIS_REGION来禁用该块。

答案 5 :(得分:0)

没有等价物。

如果不是if / else / while / for等等,大多数优秀编辑或IDE都会让您折叠功能。

答案 6 :(得分:0)

只是对其他答案的补充。区域定义因IDE而异。

对于Xcode中的Mac开发,您可以使用a pragma

#pragma mark

答案 7 :(得分:0)

C++Builder 支持此功能,但您必须将该地区声明为:

#pragma region BLAH

.....

#pragma end_region

必须对C ++ Builder使用end_region,但它工作,折叠该区域!

答案 8 :(得分:0)

Kate,KDevelop以及使用Katepart的所有其他文本编辑器和IDE都支持使用//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

您将能够折叠以这种方式定义的区域。

答案 9 :(得分:0)

我使用多个具有相同命名空间的命名空间代码块。 IDE 让我按命名空间块折叠,所以我只看到我正在处理的单个块的代码,例如

namespace MyNamespace{ // Quantise utility
  int Quantise1() { ...}
  float Quantise2() { ...}
} // MyNamespace Quantise utility
namespace MyNamespace{ // ADC utility
  int ADC1() { ...}
  float ADC2() { ...}
} // MyNamespace ADC utility

答案 10 :(得分:-1)

this question的第一个答案提到另一种选择。但它并不适用于所有情况。

方法:使用{...}代替本地支持Visual Studio中的代码折叠。

  1. 启用选项:工具 - >选项 - >文字编辑器 - > C / C ++ - >格式化 - > OutLine语句块 - >真。

  2. 将您置于不同的范围{...},然后它会折叠不同范围内的代码:

  3. Scoped code collapsing example