This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| new:multiple_return_values [2018/02/19 10:54] – korshun | new:multiple_return_values [2019/04/19 18:18] (current) – removed korshun | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Multiple return values ====== | ||
| - | |||
| - | ACSUtils uses a simple convention for functions returning multiple values, like '' | ||
| - | |||
| - | There are global variables r1 through r8. The functions write their return values to them. | ||
| - | |||
| - | RotateVector(x, | ||
| - | int newX = r1; // Get the first returned value | ||
| - | int newY = r2; // And the second one | ||
| - | |||
| - | <note warning> | ||
| - | You should retrieve the return values **as soon as possible**, or else they may get overwritten by other functions that return multiple values. | ||
| - | |||
| - | Don't do this: | ||
| - | < | ||
| - | SomeFunctionWithMultipleReturns(...); | ||
| - | SomeOtherFunction(r1); | ||
| - | int b = r2; | ||
| - | </ | ||
| - | Because '' | ||
| - | |||
| - | < | ||
| - | SomeFunctionWithMultipleReturns(...); | ||
| - | int a = r1; | ||
| - | int b = r2; | ||
| - | |||
| - | SomeOtherFunction(a); | ||
| - | </ | ||
| - | </ | ||