我知道{}用于分离诸如函数、类和条件分支之类的实体,但它们在这里还有什么其他用途?

#import <stdio.h>

int main(void) {
    {{{
        printf("main\n");
    }}}
    return 0;
}

编辑:
我发现它可能主要用于信息隐藏,以及nested functions从下面的答案来看,它们似乎可以在调试期间用作标记,并在发行版中被删除,但这不应该被认可。

最佳答案

将代码括在大括号中会创建一个Scope
创建本地作用域可能有许多原因,如:
允许在封闭范围内重用变量名。
在函数中间定义变量。
在c89中不允许在除作用域开始处以外的任何地方创建变量,但自c99以来允许这样做。
Online Example Code Sample

#include<stdio.h>

int main()
{
    int i = 10;
    {
         int i = 5;
         printf("i is [%d]\n",i);
    }
    printf("i is [%d]\n",i);

    return 0;
}

在您的示例代码中,
额外的{&}没有任何作用,它们只是多余的代码。
正如@Martin在注释中所建议的,由于在{&}中封装代码与{{{&}}}类似,因此可以将其用作标记/模式以便于搜索。
不过,就我个人而言,我更希望在代码中添加适当的注释,并在搜索中显示关键字,而不是添加这样的冗余代码。

10-07 17:10