A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 傘が咲く 于 2014-4-23 22:30 编辑

把自定义函数void one()与main函数分离后分别放在了不同的文件里。one.h、one.c、main.c。三个文件的内容分别如下:
one.h:
  1. #ifndef _ONE_H_
  2. #define _ONE_H_
  3.         void one();
  4. #endif
复制代码

one.c:
  1. #include <stdio.h>

  2. void one()
  3. {
  4.         printf("调用了one函数\n");
  5. }
复制代码


main.c:
  1. #include <stdio.h>
  2. #include "one.h"

  3. int main()
  4. {
  5.         one();
  6.         return 0;
  7. }
复制代码

这是学习李老师C基础的代码,我觉得这个地方的one.c中 #include <stdio.h>这行可以去掉,因为运行时是在main.c里运行,只要main.c中包含了这句就好,大家怎么认为呢?求专业解释!!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
应该是不行的,在编译是时one.c和main.c是单独编译的,而one中因为用到printf函数,而这个是必须要包含<stdio.h>,不然你编译时one.c就会检测到语法错误了,两个文件都编译成.o文件后再做链接操作,最后生成.out可执行文件
回复 使用道具 举报
本帖最后由 葬花桥 于 2014-4-23 15:43 编辑

one.c中的是不可以的去掉的因为one.c中用到printf函数必须包含头文件,但是main.c中的是可以去掉的,因为main 中没用到头文件中的函数,所以不需要包含头文件,希望帮到你,你其实可以自己实验下,把它去掉看看
回复 使用道具 举报
又召 发表于 2014-4-23 15:28
应该是不行的,在编译是时one.c和main.c是单独编译的,而one中因为用到printf函数,而这个是必须要包含,不 ...

谢谢回复,确实是单独编译的,帮到我了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马