How to declare printf()?

2020-07-10 10:41发布

问题:

I wanted to print something using printf() function in C, without including stdio.h, so I wrote program as :

int printf(char *, ...);
int main(void)
{
        printf("hello world\n");
        return 0;
}

Is the above program correct ?

回答1:

The correct declaration (ISO/IEC 9899:1999) is:

int printf(const char * restrict format, ... );

But it would be easiest and safest to just #include <stdio.h>.



回答2:

Just:

man 3 printf

It will tell you printf signature:

int printf(const char *format, ...);

this is the right one.



回答3:

I have no idea why you'd want to do this.

But it should be const char *.



回答4:

Here is another version of the declaration:

extern int printf (__const char *__restrict __format, ...);


回答5:

int printf(char *, ...);

works just fine, I don't know why people are telling you that char needs to be a const



标签: c printf