我有一大堆数据,大约4MB。现在想检查其中的所有位是否都为0。
例如: 这里是数据:
void* data = malloc(4*1024*1024);
memset(data, 0, 4*1024*1024);
检查它所有的位是否为0。这是我的解决方案,但速度不够快:
int dataisnull(char* data, int length)
{
int i = 0;
while(i<length){
if (data[i]) return 0;
i++;
}
return 1;
}
这段代码可能在性能方面有一些需要改进的地方。例如,在32/64位机器上,每次检查4/8个字节可能会更快。
那么我想知道最快的方法是什么?
data
的值吗? - Andy Turnerif(data[i]) return 0;
吗? - Magischcalloc
比使用malloc
更快且效率更高。 - phuclv