C ++的#region的C ++等价物是什么,所以我可以放入自定义代码可折叠位并使我的代码更容易阅读?
答案 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::Blocks和FlashDevelop,以及使用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)
答案 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中的代码折叠。
启用选项:工具 - >选项 - >文字编辑器 - > C / C ++ - >格式化 - > OutLine语句块 - >真。
将您置于不同的范围{...},然后它会折叠不同范围内的代码: