黑马程序员技术交流社区
标题:
C 自定义头文件与实现,部分代码问题
[打印本页]
作者:
傘が咲く
时间:
2014-4-23 13:51
标题:
C 自定义头文件与实现,部分代码问题
本帖最后由 傘が咲く 于 2014-4-23 22:30 编辑
把自定义函数void one()与main函数分离后分别放在了不同的文件里。one.h、one.c、main.c。三个文件的内容分别如下:
one.h:
#ifndef _ONE_H_
#define _ONE_H_
void one();
#endif
复制代码
one.c:
#include <stdio.h>
void one()
{
printf("调用了one函数\n");
}
复制代码
main.c:
#include <stdio.h>
#include "one.h"
int main()
{
one();
return 0;
}
复制代码
这是学习李老师C基础的代码,我觉得这个地方的one.c中 #include <stdio.h>这行可以去掉,因为运行时是在main.c里运行,只要main.c中包含了这句就好,大家怎么认为呢?求专业解释!!
作者:
又召
时间:
2014-4-23 15:28
应该是不行的,在编译是时one.c和main.c是单独编译的,而one中因为用到printf函数,而这个是必须要包含<stdio.h>,不然你编译时one.c就会检测到语法错误了,两个文件都编译成.o文件后再做链接操作,最后生成.out可执行文件
作者:
葬花桥
时间:
2014-4-23 15:33
本帖最后由 葬花桥 于 2014-4-23 15:43 编辑
one.c中的是不可以的去掉的因为one.c中用到printf函数必须包含头文件,但是main.c中的是可以去掉的,因为main 中没用到头文件中的函数,所以不需要包含头文件,希望帮到你,你其实可以自己实验下,把它去掉看看
作者:
傘が咲く
时间:
2014-4-23 19:27
又召 发表于 2014-4-23 15:28
应该是不行的,在编译是时one.c和main.c是单独编译的,而one中因为用到printf函数,而这个是必须要包含,不 ...
谢谢回复,确实是单独编译的,帮到我了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2