在我的 SAX xml 解析回调(XCode 4,LLVM)中,我对这种类型的代码做了很多调用:
static const char* kFoo = "Bar";
void SaxCallBack(char* sax_string,.....)
{
if ( strcmp(sax_string, kFoo, strlen(kFoo) ) == 0)
{
}
}
假设编译器优化了 strlen(kFoo) 是否安全?
(Apple 示例代码已经预先计算了 strlen(kFoo),但我认为这对于大量常量字符串很容易出错。)
编辑:优化动机:使用 NSXMLParser 在 iPod touch 2G 上解析我的 SVG 地图需要 5 秒(!)。所以,我想切换到 lib2xml,并优化字符串比较。