私の 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) が事前に計算されていましたが、これは多数の定数文字列に対してエラーが発生しやすいと思います。)
編集: 最適化の動機: iPod touch 2G で SVG マップを解析するには、NSXMLParser を使用して 5 秒 (!) かかります。そこで、lib2xml に切り替えて、文字列比較を最適化します。