关于 C 语法的问题:结构声明 mid-function 的嵌套花括号?

Question about C Syntax: Nested curly brackets for struct declaration mid-function?

标题可能有点混乱,因为我无法描述它。我确信这已经有人问过了,但我不知道 如何 正确地询问它并在网站上找到它。

本质上,对于 C,我正在查看一些内核代码,发现在某些函数中有一组额外的 'nested' 大括号('{}'),它总是有一个 header "TRACE" 的注释并包含有关结构的信息。

我想弄清楚这种语法的名称以及更多关于它的一般信息。我将不胜感激任何帮助。非常感谢! (下方屏幕截图)

Screencap of example code

这只是一个复合语句。任何可以有语句的地方,例如 x = 3;while (i) …,都可以有复合语句 { … }。在复合语句中,可以有声明和语句。

复合语句经常遇到,如与 ifwhile 或类似语句一起使用的语句:

if (a < b)
{ // Start compound statement.
   foo(a);
   bar(b);
}

while (n--)
{ // Start compound statement.
    foo(p, n);
}

但是,您也可能有自己的复合语句。这对于在复合语句中声明标识符很有用,它将标识符的范围限制在该语句中(称为 )。这减少了出现错误的机会(因为标识符在其范围之外是不可见的,所以它不会在该范围之外被意外使用)。复合语句也可以仅用于组织,向 reader 说明封闭的语句是一组相关的,并且在某种程度上与它们之前或之后的语句在概念上是分开的。

函数体也是复合语句:

int foo(int a, int b)
{ // Start compound statement.
    return a+b;
}