程序不包含头文件能编译通过吗
MS VC++ 6.0 (甚至5.0) 允许你不包含 头文件 stdio.h,stdlib.h,编译器自己会加进去。
但 需要 math.h 时,必须自己加进去,不加,编译能通过,但数学函数计算结果得数可能错。
funca() 问题,main.c 把它看成外部函数,链接时才需要寻找 funca() 的入口。
CL main.c a.c 编译能通过,链接也能通过。
-------
CL main.c -c
CL a.c -c
CL main.obj a.obj
编译能通过,链接也能通过.
❷ 在C语言中开始不写头文件算不算错,好像不写程序也能运行
头文件的目的是提供函数的声明,这样编译器在调用这个函数的地方就可以进行参数检查,根据声明信息生成正确的机器指令。如果已经有了这个函数的声明,比如你所有的函数都是在一个模块里的,并且被调用的函数的实现都在调用它的函数的前面,当然不写头文件也能编译通过。
把声明和实现分开,分别写成头文件和.c文件的好处是很清晰,别人要用你这个函数只要#include一下就可以了,所以如果是公共模块,还是写头文件好一些。
❸ C语言源程序中若缺少文件包含会则会导致编译出错吗
当然会。例如你使用了某个库函数却没有包含对应的头文件,编译器找不到这个函数名是个啥东西、就只好怯生生地对你说:“ERROR……”
❹ 为什么C程序多文件编译,没有导入自己的头文件也能正常编译通过
在C中,函数在使用前没有必要先声明,会在调用时自动声明,即使不include stdio.h,程序也可以正常编译运行。但如果你把Max.c删除的话会出现连接错误。
❺ c语言程序缺少头文件为什么还可以运行,并得到正确结果
你用的应该是C++的编译器,C++对函数申明不做强制要求,如果函数没有申明,直接使用的话,会给你一个默认申明。
编译过了之后,连接器是根据函数名称进行连接,和申明关系不大,所以,连接器也能找到正确的函数进行连接。
但你这个程序,应该会生成一些warning,提示部分函数没有申明。
❻ 已知单片机程序,没有程序中的头文件,有可能写出来吗
没有头文件单片机内的资源未被申明,不能使用,凡程序中用的这些资源就不能通过编译。
好在单片机的头文件不是保密的,您可以找一找。
例如在keil中就在\Keil\C51\INC文件夹中有一些常见单片机的头文件。
还有就是向单片机制造商索要,例如STC的可向其公司网站查找。
如果知道单片机型号就可以在网上找。
还可以自己写头文件,当然这要熟悉单片机才可。
没有程序中的单片机,就改程序,换用自己熟悉的单片机,这有点难度噢。
❼ 编写C程序时有时候不加头文件也能运行,这是为什么是不是有些头文件必须得加,而有些不用呢
像#include"stdio.h"
因为包含输入输出函数,而且用的比较经常
所以编译器启动时就自动包含了
而其他的头文件,如果你不包含的话,我预计你是运行不了的,因为编译器只自动包含#include"stdio.h"
譬如上次我没有包含#include"conio.h",编译器就无法识别WHITE BLACK等一样
所以我觉得你要是养成写头文件的习惯,对你是有好处的——以防编译器突然抽风不加载
希望以上对你有帮助
❽ 为什么在C++中使用string类型不添加头文件也能编译成功
楼主,这具体要看你用的是什么编译器的,如果你用的是GNU C++编译器,则会发生编译错误,如果你用的是visual studio C++ 编译器,则常用的缺失的头文件会自动补上,不会发生编译错误,但是有的时候VS C++这样做不是很好而已。
具体还有其他类型的C++编译器。
❾ 为什么我在编译C语言的时候,没有包括头文件,也能编译
IDE或编译器有可能默认帮你包括了。
❿ C语言 不包含头文件也能编译通过
你肯定是用的TC,TC是可以通过的。VC就不行了
这个是编译器的不同。TC可以自动包含一些预先定好的关键字和函数
如果你换成K&R C可能又不能编译了,哈哈。
