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高兴了:-)

posted on 2022-04-01 23:27  华容道专家  阅读(59)  评论(0)    收藏  举报