您的位置:首页 > 其它

错误: 可变大小的对象不能被初始化

2012-07-26 17:54 309 查看
c语言中定义了32个关键字。

#include <stdlib.h>

#include <stdio.h>

void main()

{

const int SIZE = 3;

char a[SIZE]={'a','b','f'}; /* 非法:编译阶段不能用到变量 */

printf("输出为:%c \n",a[0]);



}

编译:

qust@qust-K42JZ:~/test$ gcc test_const.c -o test_const

test_const.c: 在函数‘main’中:

test_const.c:7:3: 错误: 可变大小的对象不能被初始化

test_const.c:7:3: 警告: 数组初始值设定项中有多余的元素 [默认启用]

test_const.c:7:3: 警告: (在‘a’的初始化附近) [默认启用]

test_const.c:7:3: 警告: 数组初始值设定项中有多余的元素 [默认启用]

test_const.c:7:3: 警告: (在‘a’的初始化附近) [默认启用]

test_const.c:7:3: 警告: 数组初始值设定项中有多余的元素 [默认启用]

test_const.c:7:3: 警告: (在‘a’的初始化附近) [默认启用]

这是因为

编译阶段不能用到变量SIZE

并且在linux下和Visual c++6.0中数组的初始化是不一样的

linux: int i[10]={};//全部初始化为0 而Visual c++6.0 编译不能通过

Visual c++6.0:int i[10]={1};//只是i[0]=1,其余为0,而int i[10]={0};//表示全为0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐