Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!gatech!uflorida!umd5!brl-adm!brl-smoke!gwyn From: gwyn@brl-smoke.ARPA (Doug Gwyn ) Newsgroups: comp.lang.c Subject: Re: Variable argument lists. Message-ID: <7893@brl-smoke.ARPA> Date: 15 May 88 18:48:02 GMT References: <14139@brl-adm.ARPA> <7864@alice.UUCP> <1740@rpp386.UUCP> Reply-To: gwyn@brl.arpa (Doug Gwyn (VLD/VMB) ) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 25 In article <1740@rpp386.UUCP> jfh@rpp386.UUCP (The Beach Bum) writes: >the addition of an extra instruction to stack the number of arguments >can hardly be considered significantly slowing down a function call. WRONG. Multiply the extra cost per function call by the number of function calls per day, to see how much computer time you would be wasting each day. Function call overhead is so significant that, for example, when Gould figured out a way to save a small amount for UTX-32 Release 1.3 (I think it was), they made the change even though it introduced an incompatibility with existing UTX-32 object code. >the addition of one more instruction (or two or three or whatever for >really deficient hardware) to provide such a useful function would >seem like A Good Thing. But it is NOT a very useful function. There are already ways to obtain corresponding functionality when necessary (which is almost never), without forcing EVERY function call to pay the penalty. The main reason ANSI C has a different syntax for variadic-argument functions is precisely to avoid forcing a less efficient function linkage overhead for the VAST MAJORITY of function calls. Those that need the service should pay the price. Down with socialism.