strcmp两个char*,RISC会不会很别扭?没找到RISC-V的,ARM的应该差不多:
strcmp.S - arch/arm64/lib/strcmp.S - Linux source code (v5.17.1) - Bootlin
x86:Assembly - CMPS Instruction (tutorialspoint.com)
repe cmpsb: repeat compare string byte
X86-assembly/Instructions/cmpsb - aldeid
比如比较"a"和"ab",可先strlen(任意一个)再加1,得到2或3,遇到'\0'和'\b'时会退出循环。
当初设计C语言时,可能为了支持长度超过255的字符串,又想省一个字节 —— 假设不必支持长度超过65536的字符串。
完整的UNICODE要4个字节,即sizeof(wchar_t)为4,这下RISC高兴了:-)
浙公网安备 33010602011771号