Eon*_*nil 20 c standards scope typedef function
我使用了这样的代码:
void A()
{
typedef struct B B;
struct B
{
};
B b;
};
Run Code Online (Sandbox Code Playgroud)
typedef
和struct
函数内的定义.它与Clang编译,但我想知道(1)它们是否属于标准的一部分.关于(2)是否仅限于在功能范围内被认可.
Jer*_*fin 27
是的,标准允许这样,是的,您以这种方式创建的名称只能在函数内部显示(即,它具有本地范围,就像您定义时一样int i;
,i
具有本地范围).
它更常见,但要做到这样的事情:
typedef struct {
/* ... */
} B;
B b;
Run Code Online (Sandbox Code Playgroud)
是的,这是允许的。但是您不能在
函数内部具有函数。
声明应该首先完成,然后再使用实际代码。
在函数内部进行如下操作后,您将无法声明
void A()
{
int a=0;
a++;
typedef struct B B;//this is wrong
struct B
{
};
B b;
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16865 次 |
最近记录: |