在一个DLL中有如下代码,我要声明一个结构体,然后把它所有成员变量赋值为0
struct aaa
{
char bbb[100];
};
aaa test;
memset(&test,0,sizeof(aaa));
编译时有错误提示,红色那句报错
error C2501: 'memset' : missing storage-class or type specifiers
error C2373: 'memset' : redefinition; different type modifiers
d:\microsoft visual studio\vc98\include\string.h(103) : see declaration of 'memset'
error C2078: too many initializers
执行 cl.exe 时出错.但是如果我把memset放进一个函数里,比如下面代码
struct aaa
{
char bbb[100];
};
aaa test;
void fun()
{
memset(&test,0,sizeof(aaa));
}
就没问题了,请高手不吝赐教,谢谢指点!
struct aaa
{
char bbb[100];
};
aaa test;
memset(&test,0,sizeof(aaa));
编译时有错误提示,红色那句报错
error C2501: 'memset' : missing storage-class or type specifiers
error C2373: 'memset' : redefinition; different type modifiers
d:\microsoft visual studio\vc98\include\string.h(103) : see declaration of 'memset'
error C2078: too many initializers
执行 cl.exe 时出错.但是如果我把memset放进一个函数里,比如下面代码
struct aaa
{
char bbb[100];
};
aaa test;
void fun()
{
memset(&test,0,sizeof(aaa));
}
就没问题了,请高手不吝赐教,谢谢指点!
仔细检查下代码
反正我是没试过这样用 你想构造test的时候就清空内容 直接在结构体里写个构造函数清空不就是了?