该警告是由vala 生成的c 代码产生的。
警告:初始化程序周围缺少大括号
该代码可以工作,但警告很烦人。警告引用的vala代码是
struct Position {uint x; uint y;}
private static Position positions[8];
生成的C代码是
static Position det_positions[8] = {0};
我尝试过六种不同的方式初始化位置,但似乎无法获得满足警告的语法。这是海湾合作委员会错误 53119 https://stackoverflow.com/a/11552408/398460或者有办法解决吗?
是的,这似乎与海湾合作委员会错误 53119 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119。如果将 C 声明更改为{{0}}
。您的选择是:
- 忽略警告。
- 生成后操作 C 代码以得到
{{0}}
代替{0}
在那条线上使用sed
或类似的。
- 声明数组
extern
在 Vala 中,并在其他地方编写 C 定义。 (#2 的永久版本。)
- 做类似的事情
struct foo { int bar; Position positions[8]; } static foo position_holder
and {0}
然后将初始化position_holder.bar
这很好,警告消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)