在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
的价值是什么?