地味なネタですが、strlen の最適化についてのお話です。 文字列リテラルの文字列長をもとめる場合、通常、strlen 関数を使うわけですが文字列リテラルの長さはコンパイル時に決まっているわけですから実行時に strlen 関数を呼び出すのはなんだか無駄な処理のように思えてしまいます。 #define SOME_STRING_LITERAL "Hello, world!" size_t len = strlen(SOME_STRING_LITERAL); したがって、次のようなコードを書きたくなるわけですが自分で文字数を計算して数値リテラルを埋め込むのは愚かです。 size_t len = 13; ← "Hello, world!"の文字数 できればコンパイラが上のようなコードを生成してくれるとうれしいのですが、これはコンパイラの最適化機能になるので、当然コンパイラによっていろいろありま
![『strlen の最適化 ~ GCC編 ~』](https://cdn-ak-scissors.b.st-hatena.com/image/square/bd2ad9d1e3a5a1e757d39a027b8b91b2ebf131e5/height=288;version=1;width=512/https%3A%2F%2Fstat.profile.ameba.jp%2Fprofile_images%2F79%2Fwoooh-p%2F1173943050850.jpg)