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

GLSL中的表达测序:增加后会发生什么,glsl,post-increment,sequence-points,Glsl,Post Increment,Sequence Points,在C/C++中,有明确的规则定义“顺序点”/“排序在前”关系,例如以下表达式 int k = i-- * i; int p = j-- + --j; 调用未定义的行为 现在,我想知道在GLSL中管理这些表达式的规则是什么。我在OpenGL着色语言(4.40)规范中找不到任何定义类似于顺序点/在关系之前排序的概念的东西 在“5.9表达”一节中,它只说 预增量和预减量对其操作的表达式的内容加上或减去1或1.0,并且预增量或预减量表达式的值是该修改的结果值。增量后和减量后表达式对其操作的表达式的内容

在C/C++中,有明确的规则定义“顺序点”/“排序在前”关系,例如以下表达式

int k = i-- * i;
int p = j-- + --j;
调用未定义的行为

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

在“5.9表达”一节中,它只说

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

但没有提及与其他子表达式相关的后增量实际发生的时间

1/对于GLSL中如何定义表达式的顺序,是否有任何规范或协议

2/是否
i--*++i
是有效的/定义良好的GLSL表达式?如果是,那么在一开始我们有
i=1
时它的值是多少