The sequenced-before relation orders evaluations within one thread according to C's execution rules. If F is sequenced before E, then F happened before E. section 19.1
Assignment before a switch
If an assignment to command[0] is sequenced before a switch statement, every switch case is executed after the assignment, or at least perceived as happening later. Passing command to nested calls below ungetc therefore provides the modified value. TAKEAWAY: C's grammar establishes this ordering within the thread. section 19.1
This relation supplies one part of the happened-before relation. Ordering between threads instead comes from synchronization, including atomic operations and certain C library calls. section 19.1

