>>359
なんどもいうが、C言語に真偽値は無い。整数型で代用している。
if文も機能的に言えば、0と等しくないかどうかで分岐しているだけ。
C言語での真偽値は意味の上にしか存在しない。

true の意味で、nonzero を使ってます ってことは言えても、
nonzero のときは、常に true の意味だ、とは言えない。反例が出てくる。