This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: (printf) ("hello world\n");
Segher Boessenkool <segher@kernel.crashing.org> writes:
> On 10-dec-03, at 14:36, Joseph S. Myers wrote:
> > On Wed, 10 Dec 2003, Segher Boessenkool wrote:
> >> On 10-dec-03, at 13:27, Robert Dewar wrote:
> >>> Is it really true that the name printf is reserved? Is a C program
> >>> not
> >>> allowed to define its own printf function (which might or might
> >>> not be
> >>> varargs)? What's the story here?
> >>
> >> It is reserved only in translation units that have stdio.h #include'd.
> >
> > It is reserved (in a hosted environment) as an identifier with external
> > linkage regardless of what headers are included (7.1.3#1).
>
> That does not prevent you from declaring and defining your own
> printf() function (with a different prototype) though; it only requires
> that you make that function have external linkage.
You mean 'internal linkage'. You can define your own function named
printf only if you (a) do not include stdio.h and (b) declare it
'static'.
--
- Geoffrey Keating <geoffk@geoffk.org>