GLSL中的表达测序:后增殖会发生什么

时间:2014-07-01 14:02:42

标签: glsl post-increment sequence-points

在C / C ++中,有明确的规则定义"序列点" /"在"之前排序。关系,例如以下表达式

int k = i-- * i;
int p = j-- + --j;

调用未定义的行为。

现在,我想知道在GLSL中管理这些表达的规则是什么。我无法在OpenGL着色语言(4.40)规范中找到任何定义类似于序列点/在关系之前排序的概念的内容。

在" 5.9表达式"它只说

  

预增量和预减量对它们运行的​​表达式的内容加1或减1或1.0,预增量或预减量表达式的值是该修改的结果值。后递增和后递减表达式对它们操作的表达式的内容添加或减去1或1.0,但结果表达式在执行后递增或后递减之前具有表达式的值。

但是没有提到后期增量实际上应该与...其他子表达式。

1 /是否有关于如何在GLSL中定义表达式排序的规范或协议?

2 / i-- * ++i是一个有效/明确定义的GLSL表达式吗?如果是,那么在开始时我们有i=1的价值是什么?

0 个答案:

没有答案