fetus Diary

2008/08/09(土) - ちょっとびっくりした

864 デフォルトの名無しさん [sage] Date:2008/08/06(水) 22:59:16
vc++で、
for(int i = 0; i をコンパイルしてみたら、

while (ch = *p++) printf("%c", ch);

相当のコードが出力されてた。
最近のコンパイラは頭いいな。

複雑なコードにしたら、こういう最適化は聞かなくなるかもしれんけど。

頭良いっていうかやり過ぎ、strlen が毎回同じ結果を返すかなんて条件複雑すぎ、と思ったら勘違いでちょっと安心した。

strlen を組み込み関数にするかインライン展開するようにして内部の意味解釈までやればできなくは無いんだろうけど、メリット薄すぎるよなぁ…。MS なら、__immutable size_t strlen(const char *str); とか作って無理矢理最適化してきても驚かないけど。

コメント

コメントはありません。

名前
メール
コメント

※HTML タグは使えません。HTTP URL には自動リンクが張られます。

Captcha
画像から読み取れる文字を入力: