3d hlsl语法条件表达式
在“编程顶点、几何体和像素着色器”一书中,有一个带有以下说明的小型hlsl脚本: 返回(x!=y!=z) 这真的允许吗?这个语法正确吗?这是什么意思 返回(x!=y&&y!=z)3d hlsl语法条件表达式,3d,hlsl,c,3d,Hlsl,C,在“编程顶点、几何体和像素着色器”一书中,有一个带有以下说明的小型hlsl脚本: 返回(x!=y!=z) 这真的允许吗?这个语法正确吗?这是什么意思 返回(x!=y&&y!=z) (x!=y!=z)与(x!=y&&y!=z)不同。一般来说,遵循与相同的规则。在这种情况下,从左到右规则适用于=操作员。假设这些值是整数,表达式(x!=y!=z)等价于以下内容: int temp = (x != y); // true = 1, false = 0 int r = (temp != z); // tr
(x!=y!=z)
与(x!=y&&y!=z)
不同。一般来说,遵循与相同的规则。在这种情况下,从左到右规则适用于=代码>操作员。假设这些值是整数,表达式(x!=y!=z)
等价于以下内容:
int temp = (x != y); // true = 1, false = 0
int r = (temp != z); // true = 1, false = 0
因此,表达式将计算为1
当且仅当x
和y
相等且z
不是0
,或者如果x
和y
不相等且z
不是1
如果值为bool
s,或者可以保证为0
或1
,则表达式将简化为三个术语的逻辑异或(xor)