// 没有写#include <stdio.h>
int main(void) {
double a = 2.0;
printf("%f\n", a);
return 0;
}
warning: incompatible implicit declaration of built-in function 'printf' [enabled by default]
printf("%d\n", a);
^
运行结果:2.000000
这个故事告诉我们,#include只是生命下printf()函数。
在没有声明的情况下,编译器会默认为int类型,并且默认链接需要的系统库。printf是会被找到的。但是,编译器把其参数”hello\n”理解为整数指针,并认为printf返回了int型。如果,我们调用的函数的类型不是int 的或者返回值不是int的,则会出现错误 —-侯云锋