高效的memcspn

有谁知道memcspn函数的有效实现? 它应该像strcspn一样,但在内存缓冲区中查找span,而不是在以null结尾的字符串中查找。 目标编译器是visualC ++。

谢谢,卢卡

一个接近最佳的实现:

size_t memcspan(const unsigned char *buf, size_t len, const unsigned char *set, size_t n) { size_t i; char set2[1< 

对于set2使用位数组而不是字节数组可能更好,这取决于在您的机器上算术运算还是稍微多一点的高速缓存抖动。

编写这个函数的低效实现TBH似乎很难 – 实现看起来非常简单,所以如果你在合理的时间范围内找不到实现,我建议你自己编写。