繁体   English   中英

Ansi C抱怨数组初始化

[英]Ansi C complains about array initializing

我有一个简单的C程序,可以在c99下正常编译,但是在ANSI下它会抱怨:

初始化程序周围缺少花括号

令人反感的行是:

int myarr[3][3]={0};

为什么ANSI C抱怨? 我看到一个帖子说要在{0}周围添加其他{},但这对我来说没有意义...

(以防万一,我正在CentOS中进行编译)

int myarr[3][3]={0};

这是完全有效的C语言,在这种情况下,警告仅是编译器的指示。

如果要摆脱警告,可以执行以下操作:

int myarr[3][3]={{0}};

如果您将gcc-Wall选项一起使用,也可以添加-Wno-missing-braces

如果要初始化多维数组,则严格(在ANSI C下)应使用大括号。 例如,如果将每个元素初始化为特定值,则将执行以下操作:

int myarr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

暂无
暂无

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

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