[Rd] Strict-prototypes definitions in R includes
Prof Brian Ripley
ripley at stats.ox.ac.uk
Sun Jan 27 23:36:55 CET 2008
I think the answer is 'it depends'.
- such prototypes are not required by C99.
- using (void) is part of some authors' style and not of others. For the
latter, this is not an 'oversight' but an uglification.
- in some cases the omission is deliberate as the function is used for
variable sets of arguments (e.g, in GraphicsDevice.h).
- in others the omission is because it seemed safer to leave the
prototype out than to get it wrong (when passing functions, for
example).
- some code is taken from other projects and still has K&R style
declarations.
On Sun, 27 Jan 2008, Laurent Gautier wrote:
> Dear list,
>
> Whenever the flag "-Wstrict-prototypes" is set in gcc, compiling code that
> includes headers in lib/R/include generates often warnings
> (example with R-2.6.1:
> Rinternals.h:560: warning: function declaration isn't a prototype
> ).
>
> All such warnings I looked at were about functions with empty
> signatures declared
> as "bar foo();" rather than "bar foo(void);". Is there a reason, or is
> this just an oversight in the include files ?
It seems you were rather selective in your looking.
>
> Thanks,
>
>
> Laurent
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list