【发布时间】:2011-01-05 10:44:54
【问题描述】:
如何在 C 中有效地(及时)计算字符串的长度?
我现在正在做:
int calculate_length(char *string) {
int length = 0;
while (string[length] != '\0') {
length++;
}
return length;
}
但是与例如 strlen() 相比,它非常慢,有没有其他方法可以做到这一点?
谢谢。
编辑:我在一个独立的环境中工作,我不允许使用任何外部库,包括“string.h”。
【问题讨论】:
-
那为什么不用strlen呢?或者这是一个练习?
-
这不是一个练习,我工作的环境不允许我包含其他“libs”,包括“string.h”,所以我必须实现它并希望它在可维护的同时尽可能高效。
-
您可能需要编辑原始帖子以说明您处于独立环境中。
-
考虑到 std 库也可以在编译器优化激活的情况下进行编译,而您的代码则不能。
-
这里有很好的答案,但请记住,这是微观优化,并不是所有的程序员都了解宏观优化的用途和重要性。下面是一个 40 倍加速的例子,代码看起来非常完美:stackoverflow.com/questions/926266/…
标签: c string performance