下面的 strlen() 函数是否只被调用一次(存储值以供进一步比较);还是每次比较时都会调用?
for (i = 0; i < strlen(word); i++)
{ /* do stuff */ }
最佳答案
这取决于实现。通常,它每次都会被调用,但是,如果编译器可以看到 word
永远不会改变,并且 strlen
是一个纯函数(没有副作用),它可以提升电话。
参见:http://underhanded.xcott.com/?page_id=15这是一个众所周知的被利用的例子。 :-)
关于c - 在这个 for 循环中将调用 strlen() 多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049480/