It's unfortunate you can't just write something like:<p><pre><code> FIRE(args) {
// ...
}
</code></pre>
without the explicit registration step. Unfortunately in this case the macro FIRE should first declare the fired function, then main, then defined the fired function, and this would be problematic because the definition can't have the default values for arguments again. I can't see a way around that.