Cool, 'function parameters are pushed onto the stack at runtime rather than compile time'...great, this is a wonderful forum!

Quote Originally Posted by Lindley View Post
Actually, it's just a quirk of the language: function parameters are always allowed to be forward-declared, no matter how they're passed.

The reason is that you only need the actual definition when you need either (a) the size of the object or (b) some member of the object. Since function parameters are pushed onto the stack at runtime rather than compile time, neither of those is necessary in order to declare function parameters.