单片机C语言程序中,有多个.C源文件,main.c函数中调用那些.c源文件的函数应该怎样处理?
在一个单片机C语言程序中,有多个.C源文件,其中包括有一个main.C,其他源文件中都是一些函数或者数据;而且.c源文件都用.h头文件进行申明了;如果要在main.c函数...
在一个单片机C语言程序中,有多个.C源文件,其中包括有一个main.C,其他源文件中都是一些函数或者数据;而且.c源文件都用.h头文件进行申明了;如果要在main.c函数中调用那些c源文件(不在main.c中的函数)的函数应该怎样处理?需要做些什么声明才能调用?其实就是有多个.c文件的工程怎么处理main函数与其他函数的关系?然后就是那些写了的函数(没有用条件编译),但main函数中没有使用,那么那些函数还会编译成.hex最终写进单片机么?
展开
1个回答
展开全部
①如果 fun.h 文件 已经正确声明了,那么main.c 只要 include "fun.h"就可以使用 fun.c 函数了。只怕是,fun.h 只有 声明,而没有 正确声明。正确的 声明,需要 条件编译 声明是 函数声明 还是 外部函数声明。
② fun.c 中可能有多个函数,而 main.c 并不需要 调用,如果 这些函数 在 程序过程没有调用,那么 编译器将放弃 该函数编译,同时 发出 “未使用函数”警告,就不会 写进 单片机了。
② fun.c 中可能有多个函数,而 main.c 并不需要 调用,如果 这些函数 在 程序过程没有调用,那么 编译器将放弃 该函数编译,同时 发出 “未使用函数”警告,就不会 写进 单片机了。
追问
写多个.c文件是为了方便分类管理吗?把函数写在非main.c文件中,除了使用时需要在main函数中声明以外,跟写在main.c中还有区别么?刚学c语言不久,问题比较多~这些书上面都没讲~
追答
独立的C文件,这叫 模块化 程序设计,也是 设备 的驱动程序。每个模块(设备)的程序都有 对应的 C文件 跟 H 文件的话,那么 进行系统化 设计时,只需要 包含 模块 H 文件,一来 省略了很多 功夫,二来 系统文件(main.C)显得很整洁,看它包含 的头文件,就能简单猜到 有什么功能设计。
良好的 输出文件(模块H文件),只需要 main.c 进行 包含即可 对 模块C函数 进行直接调用,无需 重复或单独 对函数进行声明。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询