Thread: Embedded SQL: Putting a guard around included stdio.h for convenience
Hi all, I have just tried to compile an application consisting of multiple modules, each of them encapsulation access to a single table of the default database, using embedded sql. Well, until now, I have had problems with stuff being declared twice (from stdio.h and successively included include files by stdio.h), since postgres sources seemingly do not put a guard around the include statement. what i mean is, please, do include the following: #ifndef _STDIO_H #include <stdio.h> #endif /* _STDIO_H */ This seemingly is not being generated by the ecpg or included in the header files being included. And while we are at it, although I personally think that Embedded SQL is quite obsolete by now (but we have to do this stuff in school, perhaps I'm wrong), please check other parts of your source referencing (including) external include files, where there is no guard around the include statement. It makes things tedious and nearly impossible to solve, when they are not there... Thanks. Carsten Klein
Carsten Klein <carstenklein@yahoo.de> writes: > what i mean is, please, do include the following: > #ifndef _STDIO_H > #include <stdio.h> > #endif /* _STDIO_H */ What platform are you on, that is so brain-dead that stdio.h doesn't do this for itself? regards, tom lane
On Thu, Oct 02, 2003 at 12:57:37AM +0200, Carsten Klein wrote: > Well, until now, I have had problems with stuff being declared twice > (from stdio.h and successively included include files by stdio.h), > since postgres sources seemingly do not put a guard around the include > statement. > > what i mean is, please, do include the following: > > #ifndef _STDIO_H > #include <stdio.h> > #endif /* _STDIO_H */ As Tom already pointed out it is stdio.h's job to guard against double inclusion. The ifndef should be listed in stdio.h and certainly is on my Debian system. > And while we are at it, although I personally think that Embedded SQL is > quite obsolete by now (but we have to do this stuff in school, perhaps > I'm wrong), Why is it obsolete? Michael -- Michael Meskes Email: Michael at Fam-Meskes dot De ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!
Re: Embedded SQL: Putting a guard around included stdio.h for convenience
From
"Peter Galbavy"
Date:
Tom Lane wrote: > What platform are you on, that is so brain-dead that stdio.h doesn't > do this for itself? Does POSIX say anything about multiple inclusion of this and others ? (Genuine question, I do not have the "standards" to hand.) Peter
Peter Galbavy writes: > Does POSIX say anything about multiple inclusion of this and others ? "Except that the effect of each inclusion of <assert.h> depends on the definition of NDEBUG, headers may be included in any order, and each may be included more than once in a given scope, with no difference in effect from that of being included only once." -- Peter Eisentraut peter_e@gmx.net