第一种方法:
先自定义一个结构体。最好保证结构的四字节对齐。假如不这么写的话,编译器可能也会做优化调整为四字节对齐,但是有可能产生一些预想不到的结果。
struct Table{
short int a;
short int b;
long c;
long d;
};
struct Table Tab[10];
以下的函数即是用于清空结构体的,需要传入的两个参数分别为结构体的起始地址和结构体的长度。
void longClear(unsigned long *Ptr, int Size )
{
while(Size > 0)
{
*Ptr++ = 0;
Size --;
}
}
函数的调用如下。这里是以四字节为单位进行清零的。当然,这么使用的前提是,编译选项等设置严格遵守四字节对齐的准则。
void main()
{
Clear(( unsigned long *)&Tab[0],sizeof(Tab) / 4);
}
第二种方法:
使用C语言的库函数memset()。这种方式更为直接简单。具体的用法可以参见百科。
memset( (void *)&struct_name, 0x00, sizeof(struct_name));
参考资料: