遇到了一个怪事

来源:百度知道 编辑:UC知道 时间:2024/09/24 14:05:47
不是说C语言的程序必须包含头文件的吗?
为什么我一个头文件都没有包含,程序也能正常运行???
难道TC有自动包含的功能???

这个和TC无关,这是c90的一条隐含规则,
标准库中的函数可以在没有包含头文件的情况下使用,隐含声明。

希声和寡说的“标准库中的函数可以在没有包含头文件的情况下使用,隐含声明”正确。
编译器对没有声明的函数自动声明。相当于在源文件中加入extern int funname(void);
也就是说,未声明的函数它被自动声明成返回int,不接受参数的函数。如果函数的真实情况不是这样,那么未声明即调用将引发不可预料的后果。像printf这样的函数,如果有可变参数部分,必须加入<stdio.h>
C++中,必须先声明函数。

另外楼主,希声和寡说的C89即 ISO C。我们现在的编译器都提供对C89与C90(ANSI C)的完整支持

我们添加头文件是因为我们要使用头文件的库函数,如果我们不用当然不用添加
例如
printf(),scanf()是stido.h的库函数如果我们不用 printf(),
scanf()当然不用添加stdio.h 。
不过一个算法一定要有输出

可以的,默认会包含“stdio.h”的。

如果不用调用什么的话(比如函数)
就不用
直接main()