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

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

	bytevar = 5 > 0; //bytevar will be 1
	bytevar = 0 > 5; //bytevar will be 0

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

	bytevar = (x > y)*4;

is the same as:

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

      

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

	bytevar = 54;
		bitvar = bytevar; //bitvar は 1 (bytevar ! = O)

		if(bytevar) // TRUE
		bytevar = 0;
		bitvar = bytevar; //bitvar は 0