写在前面
最近做题被(memset)坑了一把,所有重新看了一下有关(memset)的东西,下面的(f)严谨来讲应该写为(F),不过我懒得改大写(逃)
关于(0x3f3f3f)
先从用(memset)赋值的常见的值(0x3f3f3f)说起吧
他是满足下面两个性质的最大的整数
- 整数的两倍不超过(0x7fffffff),即(int)能表示的最大的整数
- 整数的每(8)位((update:)即每个字节)相同
关于(memset)
memset(a,val,sizeof(val));
关于上面的例子
是将数值(val(0x00acksim 0xff))填充到数组(a)的每个字节上去,我们知道(1)个(int)占用(4)个字节,所以用(memset)只能赋值出每(8)位都相同的(int)
常见的问题
可以参考这个讨论里面写的还是比较详细的