The function call overhead is significant. That was the reason why
I once proposed here to have some inline facility in gawk. The
least intrusive method that I thought of was an implicit inlining;
in case of a definition
function sign (x) {
return (x>0) - (x<0)
}
it would be a expanded to a normal function call, and in case of
function sign (x) { return (x>0) - (x<0) }
(i.e. all in one line) it could result in inline expanded calls.
Alas, at the time I proposed it I had not enough spare time to look
whether it was feasible implementing it. (And probably, don't recall,
the maintainers might also not be thinking that to be a good idea?)
I don't much like the idea of a macro preprocessor because of the
known issue with function arguments that have side effects, like ++n.
If need be one could already use the C-preprocessor for that purpose,
I suppose, which supports macro "functions".
Janis