On Wed, 16 Aug 1995, Jörgen Zigge Sigvardsson wrote: > > This is what is known as 'prototyping'. What this means is you let a > > function or a file know that an external function exists. Alternately, > > you could use: > > > void hunt_victim(); > > > If you change the structure of the parameters anywhere, using this > > example keeps you from having to redefine prototypes. This, of course, > > isn't true if you change the returned data structure or the name. > > > It seems obvious to some, not so obvious to others. It's good you > > brought that up, however. > > > Hmm.. A prototype like that would 'eliminate' warnings, or? > > If you prototype with void hunt_victim() you havent specified the arguments. > > Lets say the function is defined like this ; > > void hunt_victim(char *, struct char_data *) > { > /* Some code */ > } > > And you call the the function like this; > > char *string; > struct char_data *ch; > > hunt_victim(ch, string); > ... > > Note that the arguments are switched. > > Now my question is, will the compiler complain at the function-call or > will it just let it slip? > > >From what I've learned, the prototype is the one the compiler use for detecting > faults, and the prototype allows any kind of arguments, but the function dont. > > // Ziggur @ BlueMage > > Actually, it will catch the error while linking, but the compiler will let it through.
This archive was generated by hypermail 2b30 : 12/18/00 PST