心の叫び


余談だが、玄箱に付属の CD-ROM には入っている init/main.c に
	// 心の叫び
	//
	// if(-1 == execve("/sbin/init...))なんて表現は気持ち悪い!
	// 定数を比較文の左に書くのは変だ!
こんなコメントがある。
私も定数を左に書くのは気持ち悪くて仕方がないのだが、 左に定数を書く人に聞いてみると、
if ( errno = EINTR )・・・ == と書くつもりが = と書いてしまった

if ( (errno = EINTR) != 0 ) と解釈されコンパイルエラーにならない。

ところが、
if ( EINTR = errno )・・・ == と書くつもりが = と書いてしまった
は定数には代入できないので、コンパイルエラーになる。

「比較と代入を間違えたことがわかるように、定数は左に書くべきだ」
との事。カルチャーショックだった。
上記カーネルのコード(?)が同様の理由かどうかはわからないが。

ちなみに上記「心の叫び」は、ソース CD では消されてしまっている。


 LinkStation/玄箱 をハックしよう  → /dev/fl3
Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp
山下康成京都府向日市