是否保证memset会清除结构中的填充位?

前端之家收集整理的这篇文章主要介绍了是否保证memset会清除结构中的填充位?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一般来说,根据C标准,它是否保证带有0的memset()会清零C结构中的填充位?

gcc怎么样?@H_301_3@

例如,像:@H_301_3@

struct MyStruct
{
    unsigned char   member1;
    unsigned int    member2;
    char        member3;
    unsigned char   member4;
    float       member5;    
};

struct MyStruct ms;

memset(&ms,sizeof( struct MyStruct));

解决方法

也许值得注意的是,memset不知道你的结构(或数组,或原始,或任何大部分的内存,你碰巧释放它),所以即使它想要保持填充位不变,甚至知道他们在哪里.

猜你在找的C&C++相关文章