问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机C语言程序中,有多个.C源文件,main.c函数中调用那些.c源文件的函数应该怎样处理?

发布网友 发布时间:2022-04-23 14:50

我来回答

1个回答

热心网友 时间:2023-10-19 10:39

①如果 fun.h 文件 已经正确声明了,那么main.c 只要 include "fun.h"就可以使用 fun.c 函数了。只怕是,fun.h 只有 声明,而没有 正确声明。正确的 声明,需要 条件编译 声明是 函数声明 还是 外部函数声明。
② fun.c 中可能有多个函数,而 main.c 并不需要 调用,如果 这些函数 在 程序过程没有调用,那么 编译器将放弃 该函数编译,同时 发出 “未使用函数”警告,就不会 写进 单片机了。追问写多个.c文件是为了方便分类管理吗?把函数写在非main.c文件中,除了使用时需要在main函数中声明以外,跟写在main.c中还有区别么?刚学c语言不久,问题比较多~这些书上面都没讲~

追答独立的C文件,这叫 模块化 程序设计,也是 设备 的驱动程序。每个模块(设备)的程序都有 对应的 C文件 跟 H 文件的话,那么 进行系统化 设计时,只需要 包含 模块 H 文件,一来 省略了很多 功夫,二来 系统文件(main.C)显得很整洁,看它包含 的头文件,就能简单猜到 有什么功能设计。
良好的 输出文件(模块H文件),只需要 main.c 进行 包含即可 对 模块C函数 进行直接调用,无需 重复或单独 对函数进行声明。

热心网友 时间:2023-10-19 10:39

①如果 fun.h 文件 已经正确声明了,那么main.c 只要 include "fun.h"就可以使用 fun.c 函数了。只怕是,fun.h 只有 声明,而没有 正确声明。正确的 声明,需要 条件编译 声明是 函数声明 还是 外部函数声明。
② fun.c 中可能有多个函数,而 main.c 并不需要 调用,如果 这些函数 在 程序过程没有调用,那么 编译器将放弃 该函数编译,同时 发出 “未使用函数”警告,就不会 写进 单片机了。追问写多个.c文件是为了方便分类管理吗?把函数写在非main.c文件中,除了使用时需要在main函数中声明以外,跟写在main.c中还有区别么?刚学c语言不久,问题比较多~这些书上面都没讲~

追答独立的C文件,这叫 模块化 程序设计,也是 设备 的驱动程序。每个模块(设备)的程序都有 对应的 C文件 跟 H 文件的话,那么 进行系统化 设计时,只需要 包含 模块 H 文件,一来 省略了很多 功夫,二来 系统文件(main.C)显得很整洁,看它包含 的头文件,就能简单猜到 有什么功能设计。
良好的 输出文件(模块H文件),只需要 main.c 进行 包含即可 对 模块C函数 进行直接调用,无需 重复或单独 对函数进行声明。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... main.c中想调用一个函数test.cpp怎么操作? c语言有个main.c,如何调用子函数文件fun.c,求大神指教 ?? c语言程序如何找回main.c文件? 如何在main.c中如何调用static函数怎么办 嵌入式中main.c*是什么意思 在Linux中,Is main.c;cat main.c ;du-kmain.c;head main.c分别是什么意思 群接龙供应商要收费吗 除了快团团和群接龙还有别的团长平台吗 群接龙隐藏了要怎么看到 群接龙三种主页怎么分 餐饮连锁店如何做社群团购接龙 群接龙如何搜索社群 群接龙怎么关注团长 群接龙团长会员试用期已过怎么办? 群接龙提现需要确认收货吗 团的成语接龙 群团购接龙发布后都谁能看到? 群接龙如何操作? 维生素E乳膏可以用么? 维生素e乳可以长期使用吗 华为荣耀30可以无线充电吗? main.c的全局变量能否被其他 .c看到 codeblock出现对话框,main.c打不开 c工程主函数必须为main.c吗?为什么我这个运行成功了? keil uvision2加载不了main.c怎么办??? 在红帽子中如何删除main.c文件 codeblocks建立了project后没有出现main.c MAIN.C(51): error C221: non-constant case/dim expression ,求解高手,这是什么错误??? 将这个程序保存成main.c,然后编译执行,怎么编译执行?? keil中一直提示错误:main.c(63): error C202: 'num': undefined identifier main.c是否需要#include<stm32f10x_it.h> main.c(123): error C207: 'read_ds1302': declared with 'void' parameter list 为什吗用code block打开main.c显示此文件不存在 C里面的main是什么意思啊 怎么查自己有没有医保社保? 查询医保缴纳情况有哪些方法可以查询?如果没有工作和户口要如何查询? 怎么查是否交了医保 兄弟,武汉桑拿网的注册邀请码有没有哦?谢谢啦! 武汉的桑拿会所现在多么? 武汉桑拿保健按摩哪家好?