strcmp是否比strncmp慢,因为它可以给它预先计算的字符串长度,但是strcmp没有收到这样的信息?

我正在写翻译。我知道这些功能都已优化。我不知道哪种方法更好(就性能而言),因为无论如何我都会进行扫描,并且我会知道偏移位置以及长度。

最佳答案

它们做不同的事情,因此直接比较它们是没有意义的。 strncmp比较字符串的前一个n(如果字符串早一点,则更少)。 strcmp比较整个字符串。如果n足够大,以致strncmp可以比较整个字符串(因此行为实际上与strcmp相同),则strncmp可能会适度变慢,因为它还必须跟踪计数器,但是在给定的实现中,差异可能无法测量,甚至无法测量。例如,strcmp的实现可以仅将SIZE_MAX作为n的值传递给strncmp

关于c - 是strncmp比strcmp快,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39154525/

10-12 18:13