2
小HLSLスクリプトは、次の命令である:HLSL構文条件式
リターン(!X = Y = Z)。
これは本当に許可されていますか?これは構文的に正しいですか?これは何を意味するのでしょうか?
return(x!= y & & y!= z);
小HLSLスクリプトは、次の命令である:HLSL構文条件式
リターン(!X = Y = Z)。
これは本当に許可されていますか?これは構文的に正しいですか?これは何を意味するのでしょうか?
return(x!= y & & y!= z);
(x != y != z)
は(x != y && y != z)
と同じではありません。一般に、hlslはcと同じ規則に従います。この場合、左から右のルールが!=
演算子に適用されます。その結果
int temp = (x != y); // true = 1, false = 0
int r = (temp != z); // true = 1, false = 0
、表現があれば1
に評価され、x
とy
が等しく、z
が0
ない場合にのみ、またはx
場合:値は整数であり、表現(x != y != z)
は以下と等価であると仮定すると、 y
は等しくなく、z
は1
ではありません。
値がbool
であるか、または0
または1
であることが保証されている場合、式は3項の論理排他または(xor)になります。
ありがとうございます:) – m1au