Ternary operator and Sequence Points in C
c, sequence-points, synchronization, ternary
Solution
Right. There's a sequence point after the evaluation of the condition, but the next sequence point is the semicolon terminating the statement. So whenever `count != 20`, you have the undefined behaviour
index = index++;
since `index` is modified twice without intervening sequence point.
Problem
I've an expression of the form shown below :- ``` while (count) { ... ... index = ((count == 20)? 0 : index++); ... ... } ``` Now Ternary operators are sequence points in C but I believe that the sequence point ends at the test part. Is this understanding correct and as such will this statement lead to undefined behaviour ?