support ANSI-C style arg passing and K&R style