calc文件的疑问

calc文件的疑问

老师,有如下两个问题:

  1. calc.c文件定义后,main函数中并体现出在哪里使用了calc.c,为什么在调用find_max时会按照calc.c定义的函数输出?

  2. 为什么不直接在head.h文件中将函数定义好,直接编译head文件然后在main中使用函数?看不懂calc.c的作用。


https://img1.sycdn.imooc.com//climg/64cf5b83090a8c3407660832.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

注意头文件head.h,头文件中还有calc()函数的声明。C语言规定:多文件编程的适合,一般函数的声明放到xx.h中,函数的定义放到XX.c中。首先理解声明和定义的含义。声明表示告诉编译器函数的位置,定义表示存储函数的具体实现功能。
回答1: 因为在编译时的适合两个文件是一起编译的。 gcc main.c calc.c ,两个源文件一起编译后,编译肯定可以知道calc函数的位置。main函数就可以直接调用了。
回答2:head.h 是头文件,头文件一般放函数的声明,不存放函数的定义。(存放定义,某些编译器会提示错误)。
函数的定义存放到xx.cpp中。

  • 万能小企鹅 提问者 #1

    老师,head.h文件中也未显示calc.c文件。


    我可以理解因为在calc.c中也有头文件head.h,所以在head.h中声明的文件,可以在calc.c中进行定义。


    我比较疑惑的是,main.c和head.h中都未显式的表现出,在main.c中调用find_max时会按照calc.c中定义的函数运行,这两个文件唯一的关联就是一起编译。是否可以理解为,因为两个文件一起进行了编译,所以main.c会到calc.c中找到head.h中声明的函数和变量?


    https://img1.sycdn.imooc.com//climg/64d0d7e7096a9ecb07670696.jpg

    2023-08-07 19:44:52
  • 大白老师 回复 提问者 万能小企鹅 #2

    对的,你的calc.c文件中有head.h头文件可以找到!一起编译的时候,编译器记录了find_max函数的地址!所以你一调用可以直接找到!

    2023-08-07 22:14:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师