我使用了一些这样的代码:

void A()
{
    typedef struct B B;
    struct B
    {

    };

    B b;
};

函数内部的typedefstruct定义。它用Clang编译,但是我想知道(1)它们是否是标准的一部分。关于(2)是否仅限于在功能范围内进行识别。

最佳答案

是的,标准允许这样做,是的,以这种方式创建的名称仅在函数内部可见(即,它具有局部范围,就像定义int i;时一样,i具有局部范围)。

更常见的是,执行以下操作:

typedef struct {
    /* ... */
} B;
B b;

关于c - `typedef`和 `struct`是否在C中的函数标准内?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5590757/

10-11 22:49
查看更多