TRUEとFALSE、コンパイラーはどのように決定するのでしょうか?

バイトやワードの評価で 0 か 1が返されます。例えば:

	bytevar = 5 > 0; //bytevarは1です。
	          bytevar = 0 > 5; //bytevarは0です。

同様に次の式の評価はどうなるでしょう。例えば:

	bytevar = (x > y)*4;

これは次のプログラムを同じ結果を得ます:

if( x > y )
		                     bytevar=4;
	                       else
	                        bytevar=0;

      

SHORT INT型(bit変数)も0か1をとりますので、式の中で同じように使用できますので、結果は式で0の時はFALSE(又は、0)、さもなくばTRUE(又は、1)です。 例えば、bit型の変数が変化します:

bytevar = 54;
		                  bitvar = bytevar; //bytevarは54なのでbitvarは1

		                  if(bytevar) // 条件はTRUE
		                         bytevar = 0;
		                       bitvar = bytevar; //bytevarが 0になったのでbitvarも 0