memset函数的理解

void val_init(void)
{
    unsigned int i,len;

    len = sizeof(GF_cs) / sizeof(GF_cs[0]);//计算GF_cs数组的长度,注GF_cs为全局变量,定义为:unsigned int GF_cs[33];
        //--------memset函数清理内存 vs for循环清理内存
        //memset:3496.25us - 3390.50us = 105.75us = 423个指令(4Mhz)
        //         for:3390.50us - 3231.75us = 158.75us = 635个指令(4Mhz)
    NOP();//测算时间-----3231.75us
    for(i = 0;i < len;i++)
        GF_cs[i] = 0;
    NOP();//测算时间-----3390.50us
    memset(GF_cs,0,sizeof(GF_cs));//将GF_cs指向的地址为开始,到GF_cs数组长度内的内存以0填充
    NOP();//测算时间-----3496.25us
}

猜你喜欢

转载自www.cnblogs.com/inlod/p/11722418.html