关于使用#pragma region在Visual Studio中折叠代码块

在VisualStudio中,当你编写一个函数时,它可以折叠成轮廓,每个人都知道它。 您还可以使用#pragma region#pragma endregion手动指定代码区域,以便它可以折叠。 但是我发现了一个问题,如果任何折叠的代码块都在#pragma region ,它们就不能再崩溃了。 有什么办法可以解决吗?

<img src="http://sofzh.miximages.com/c%2B%2B/933Ba.png" alt=" funcA() funcB() funcC()可以折叠”>

<img src="http://sofzh.miximages.com/c%2B%2B/I8mFO.png" alt="添加 #pragma region 后,它们无法独立折叠。”>

除了#pragma region之外,还有其他几种更好更灵活的方法可以在VS中折叠代码:

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

  1. 启用选项: Tools->Text Editor->C/C++->Formatting->OutLine Statement Blocks->True

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

    在此处输入图像描述


方法2:使用键盘快捷键折叠您想要的代码:

  • CTRL + M + O将全部崩溃。

  • CTRL + M + L将扩展所有。

  • CTRL + M + P将展开全部并禁用轮廓。

  • CTRL + M + M将折叠/展开当前部分。


值得注意的是,方法#1对普通代码片段更有效。 对于函数,因为类似于我们不能在C ++中的函数内部使用函数 ,我们不能将函数放在{...}定义的范围内。 幸运的是,我们仍然可以通过为每个范围创建名称空间来使用方法#1。 或者简单地说,使用方法#2。

是的,存在这个问题

有时可行的一种解决方法是使用轮廓 – >折叠到定义,然后重新展开每个块。