先说答案,不一定。
事情是这样的,我在写操作系统,看到田宇大佬写的代码里面,strlen也是用汇编来写的,我很不解,这个不是可以用C来实现吗?难不成纯汇编更快?于是我就写了一个小程序来做实验。看看这两者的速度。
这个程序首先是随机生成了1E6长度的字符串,然后分别进行1000次计算大小,可以发现,C语言的函数运行的更快一些些。
代码语言:javascript复制//测试strlen的速度
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int n = 1e6; //生成长度为1e6的字符串
char s[1000007];
void generate_string()
{
//先删除s
srand((unsigned)time(NULL));
for (size_t i = 0; i < n; i )
{
/* code */
s[i] = 'a' rand() % 26;
}
s[n] = '