Defer Statements Execute Backward
14 EXAMPLE 5: Defer statements execute in reverse lexical order, and nested defer statements execute in reverse lexical order but at the end of the defer statement they were invoked within. The following program: int main () { int r = 0; { defer { defer r *= 5; r *= 3; defer { r += 1; }; }; defer r += 2; }; return r;// return 35; } is equivalent to: int main () { int r = 0; r += 2; r *= 3; r += 1; r *= 5; return r;// return 35; }
A programming textbook page explains how defer statements run in reverse lexical order, including nested defers, and shows the equivalent reordered code. The joke is the unexpectedly complicated execution order: the operations produce 35 even though they are written in a different order. EN: A programming textbook page explains how defer statements run in reverse lexical order, including nested defers, and shows the equivalent reordered code. The joke is the unexpectedly complicated execution order: the operations produce 35 even though they are written in a different order.
- @gentoomemes / 7756 2023-12-02
- Type
- image
- Size
- 800×705 · 49.4 KiB
- Mood
- educational, absurd
- Language
- en
- Added