出于我完全不同意的原因,尽管我反对,但“(反可用性)权力”继续颁布法令,我有一个排序例程,它执行基本的 strcmp() 比较以按其名称排序。效果很好;很难弄错那个。但是,在第 11 小时,已决定以数字开头的条目应位于以字母开头的条目之后,这与 ASCII 顺序相反。他们引用 EBCDIC 标准在字母后有数字,因此先前的假设不是普遍真理,我无权赢得这个论点……但我离题了。
这就是我的问题。我已经用一个名为 nonstd_strcmp 的新函数替换了对 strcmp 的所有适当引用,现在需要实现修改以完成排序更改。我使用 FreeBSD 源作为我的基础: http: //freebsd.active-venture.com/FreeBSD-srctree/newsrc/libkern/strncmp.c.html
if (n == 0)
return (0);
do {
if (*s1 != *s2++)
return (*(const unsigned char *)s1 -
*(const unsigned char *)(s2 - 1));
if (*s1++ == 0)
break;
} while (--n != 0);
return (0);
我想我可能需要花一些时间来真正考虑应该如何完成它,但我敢肯定,我不是唯一一个经历过发布前规范更改的脑死亡的人。