GLSL中的表达测序:增加后会发生什么
在C/C++中,有明确的规则定义“顺序点”/“排序在前”关系,例如以下表达式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,并且预增量或预减量表达式的值是该修改的结果值。增量后和减量后表达式对其操作的表达式的内容
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
时它的值是多少