Path: utzoo!attcan!uunet!mcsun!ukc!cam-cl!news From: bdb@cl.cam.ac.uk (Brian Brunswick) Newsgroups: comp.lang.c Subject: Is there an opposite to stdargs? Message-ID: <1990Jul1.024453.4976@cl.cam.ac.uk> Date: 1 Jul 90 02:44:53 GMT Reply-To: bdb@cl.cam.ac.uk (Brian Brunswick) Organization: U of Cambridge Comp Lab, UK Lines: 22 Is there a reasonably standard method available to do the opposite of what stdargs/varargs does - ie have the run time type variation used not by the callee, but by the caller? (I want to do this to implement a dynamic loading system for an object orientated system.) What it would have to do would be build up the parameters in a buffer array, and then pass that by value to the called function, via a function pointer, which would probably be declared with a ... prototype. Of course, wrap the array in a structure to get around C's brokeness about arrays. Now this is quite easily written, but is definately non portable, so is there already a macro interface to it somewhere that I could copy? The trouble with this sort of implementation is that it ends up passing lots of spurious gunge due to a fixed length array, and would be in deep trouble with a system that took advantage of prototypes to (say) put doubles in fp registers. Perhaps I should go to the method of passing a va_ whatever as the vprintf etc. functions do, but I want to avoid complexity in the called function. Oh well. Any thoughts, contributions? I will by default summarise any direct email, so please say if you would object to this. Brian Brunswick, bdb@uk.ac.cam.cl - Short .sig rules!