今天做了这样一个实验
定义了一个结构体数组,居然编译不过,百思不得其解,百度后得释。
typedef struct tagTDefStruct
{
int a[10];
}TDefStruct[10];
memset(TDefStruct, 0, 10*sizeof(TDefStruct)); -----这个到底要怎么初始化 memset(TDefStruct, 0, sizeof(TDefStruct));?????
编译出现错误:parse error before 。。。
这是为啥呢?我看人家代码就是这样写的呢,可以正常运行啊,为什么连编译都不过。
百度结果:
这证明你使用的编译器只支持C89标准。
这个C标准要求在一个块内的变量的声明放在所有非声明语句的前面。
C99及C++标准无此限制。
之后,
就把代码改成如下方式:
typedef struct tagTDefStruct
{
int a[10];
}TDefStruct;
TDefStruct tDefStruct[10];
memset(tDefStruct, 0, 10*sizeof(TDefStruct));
OK 编译通过。
posted on 2012-12-07 21:13
Carrie 阅读(153)
评论(0) 编辑 收藏 引用 所属分类:
C语言