错误: 可变大小的对象不能被初始化
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
#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
相关文章推荐
- iis错误提示80004005不能更新,数据库或对象为只读
- 关于系统弹出错误:429 , ActiveX 部件不能创建对象 的解决方法
- Python 函数默认参数不能使用可变对象,如List,dict
- IE之“错误:Automation 服务器不能创建对象”问题
- 对指定大小的容器使用类类型对象进行初始化的理解
- 运行错误“429”,active X 部件不能创建对象 解决方案
- Microsoft JScript 运行时错误: Automation 服务器不能创建对象
- 用javascript 创建ActiveX对象时出现:Automation server can't create object"(Automation 服务器不能创建对). 错误的解决办法
- Access提示 429错误, ActiveX 部件不能创建对象的解决方法
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- switch case语句里面不能定义对象,有语法错误,除非加一个花括号
- Asp.Net 之 通过调用 WScript.Shell 启动本地 exe 程序时产生“ automation服务器不能创建对象 ”的错误
- switch case语句里面不能定义对象,有语法错误,除非加一个花括号
- c++积累(4):vector对象初始化和大小、容量
- C C++全局变量初始化 initializer element is not constant 错误 c++中为什么不能对全局变量在函数外赋值
- Microsoft JScript 运行时错误: Automation 服务器不能创建对象
- Python陷阱:为什么不能用可变对象作为函数的默认参数值
- C++笔记 构造函数属性初始化,new,delete,对象的大小
- Python陷阱:为什么不能用可变对象作为函数的默认参数值
- 为什么临时对象(变量)不能初始化非const引用对象(变量)