まぁ正しく動くのでウンコードの趣旨とは違うのですが…これは初心者泣かせだよなぁw
void strcpy(char *s, char *t) { while(*s++ = *t++) { ; } }
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
strcpy() を作り直していることはともかく、while 自体は普通の書き方の範疇だと思いますが。もっと冗長に表現できますけれど、これはこれで可読性もあるのでは。
> K&Rには「マスターすべき」って書いてあるんだけど
そこなんですよ。天下の K&R がお勧めしてるから怖い。strcpy を作り直してること自体は置いておくとしても、そういうのをお勧めしちゃうのは初学者に対してはいかがなものなのかと思いました。
今でもCが好きな人はこういう記述こそ美しいと感じるんじゃないですかね?とかいってみるてすと。私は好きです
while(*s++ = *t++);でいいじゃん!
むしろうんコードではなく美しいコード
無駄のない無駄に美しいコード!!
Cにご無沙汰していると,(*s)++=(*t)++なのか*(s++)=*(t++)なのか,ぱっと思い出せないあたりがウンコードなのでは,と思った.
どうせコンパイラが最適化してくれるんだから、可読性の高いコードを書くほうが大事だと思うの。 でも収まり悪く感じて弄ってるうちにこんなコードになることはよくある。
コメント投稿には、twitter認証が必要です。
Twitter認証
なるほどねwってヌル文字使えよ!