繁体   English   中英

在C中的函数标准中是`typedef`和`struct`吗?

[英]Are `typedef` and `struct` inside of a function standard in C?

我使用了这样的代码:

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

    };

    B b;
};

struct内的typedefstruct定义。 它与Clang编译,但我想知道(1)它们是否属于标准的一部分。 关于(2)是否仅限于在功能范围内被认可。

是的,标准允许这样,是的,你用这种方式创建的名称只能在函数内部显示(即,它具有局部作用域,就像定义int i; i有本地作用域)。

它更常见,但要做到这样的事情:

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

是的,这是允许的。 但你不能拥有
函数内部的函数。

声明应该先完成,然后再用你的实际代码完成。

在您的功能中执行某些操作后,您无法声明,如下所示

void A()
{

int a=0;

a++;    

typedef struct B B;//this is wrong
    struct B
    {

    };

    B b;
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM