R Include File Guards
On Wed, 18 May 2005, Prof Brian Ripley wrote:
On Wed, 18 May 2005, Paul Roebuck wrote:
R 2.1.0/src/include from 2005/04/18 download Naming inconsistent for guards as well but that's pedantic. Simple convention: file <foo.h> #ifndef R_FOO_H file <R_ext/bar.h> #ifndef R_EXT_BAR_H Missing guards: <IOStuff.h> <Internal.h> <Parse.h> <R_ext/GraphicsBase.h> <R_ext/GraphicsDevice.h> <R_ext/GraphicsEngine.h> <R_ext/R-ftp-http.h> <R_ext/libextern.h> Illegal Guards (leading underscore): <Rinternals.h> <R_ext/Error.h> <config.h.in>
What is `illegal' about that?
ANSI C standard reserves identifiers that begin with underscore followed by capital letter for implementation. Strictly speaking, if a program uses such an identifier, it's behavior is undefined. <http://docs.hp.com/en/B9106-90012/stdsyms.5.html> <http://docs.sun.com/app/docs/doc/802-2124/6i6425cof?a=view> <http://www.cs.utah.edu/dept/old/texinfo/glibc-manual-0.02/library_1.html> ---------------------------------------------------------- SIGSIG -- signature too long (core dumped)