gpt4 book ai didi

c - 空 block {} 转换为结构

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:54 25 4
gpt4 key购买 nike

我正在阅读一些关于编译器原理的C语言代码(似乎是根据C11编写的)来自Github,链接如下。

https://github.com/rui314/8cc

我从 main.c 开始得到一些代码,例如:

首先,一个结构体:

typedef 结构 {
无效的** body ;
国际长度;
内部分配;
} vector ;

然后是一个宏:

#define EMPTY_VECTOR(( vector ){})

最后:

静态 vector *cond_incl_stack = &EMPTY_VECTOR;

我的问题是,如果可以将空 block 转换为结构并分配给指针,我会编写一些代码来测试:

vector v=( vector ){};
vector a[3]={};

Qt5中没有兼容

最佳答案

任何版本的 C 都不允许空的初始化列表。

我相信这是一个 GNU 非标准扩展。不要使用它。如果你想要标准的等价物,至少初始化一个元素:

Vector v = {0};

复合文字也是如此:

Vector v = (Vector){0};

编辑:引用标准:

(6.7.9) initializer-list:        designationopt initializer        initializer-list , designationopt initializer  

关于c - 空 block {} 转换为结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com