Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!mcnc!philabs!pwa-b!mmintl!franka From: franka@mmintl.UUCP (Frank Adams) Newsgroups: comp.lang.misc Subject: Re: Check the Arg Count Message-ID: <1941@mmintl.UUCP> Date: Mon, 19-Jan-87 20:56:01 EST Article-I.D.: mmintl.1941 Posted: Mon Jan 19 20:56:01 1987 Date-Received: Wed, 21-Jan-87 22:27:58 EST References: <3395@amd.UUCP> <4886@mimsy.UUCP> <3101@diamond.Diamond.BBN.COM> <1634@enea.UUCP> <594@mcgill-vision.UUCP> Reply-To: franka@mmintl.UUCP (Frank Adams) Organization: Multimate International, E. Hartford, CT Lines: 24 In article <594@mcgill-vision.UUCP> mouse@mcgill-vision.UUCP writes: >NO. The compiler does not treat scanf(), printf(), etc, any >differently from any routine which is defined in another file. They >are "standard" only in that (almost) all environments which support C >also support these routines. Pascal, on the other hand, does things >for write(), writeln(), etc, differently from the way it handles calls >to user routines. Many Fortran implementations do *not* treat variable-argument subroutines (such as MAX) any differently from other calls. (At least one, for TOPS-10, deals with a two-argument MAX inline, but generates an ordinary function call for more than two arguments.) Pascal does make it impossible to even define such functions for use in the language -- this is a grave deficiency, but not really the fault of the type-checking. Fortran does not permit such routines to be written in the language, meaning that some portion of your system must be in some other language (usually assembler) if you have need of such tricks. But C doesn't really provide any way to write such routines in the language either -- not portably. varargs does provide a way to do this, but (1) many current C implementations do not support varargs, and (2) varargs is a *kludge*. Frank Adams ihnp4!philabs!pwa-b!mmintl!franka Multimate International 52 Oakland Ave North E. Hartford, CT 06108