完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我从去年开始用C(XC8)编程,使用我以前的工具(主要是Assembler)编写具有不同IDE的程序。现在,我实现了很少的工作程序,这很好,但我不知道它们是如何工作的,这很糟糕。请耐心地解释清楚组装程序的正确方法;以我的上一个项目为例,我将试图解释我的问题:我有一个..c,两个Header文件(用于HW和SW定义),一个Common.c文件带有服务例程,4个C模块(一个带有自己的header),它们实现了与HW的接口,并公开了一些功能,最后还有一个CorE.C,它几乎是程序的真正核心;它调用不同的HW函数并负责演示。最后,必须“知道”所有公共和公共功能。为了简单起见,让我以这种方式总结文件,只考虑一个HW.c而不是4:A...cA1。标题1 HA2。头部2.Hb。常见的C/C公开了公用和实用程序功能,主要是Core.cC。C//.s公共函数(具有其头部)D.Core.c.,在我看来,我应该向MPLABX项目中添加所有这些文件,其中Main只包括两个Header。这不起作用;由于缺少依赖关系而导致很多错误。在项目中只有..c和2.c才有效。Header1.h(它定义了sw)在其末尾包括所有其他模块,其中Common.c是第一个,Core.c是最后一个(因为它使用已经定义的函数。(为了重构,Isiston)有人能告诉我,我做错了什么?请考虑我不是天生的英国人,所以不要用俚语。
|
|
相关推荐
6个回答
|
|
值得注意的是,您应该使用一种防止多次读取头文件的结构,比如:所以您可以在每个C文件中放置include
|
|
|
|
http://www. gMeDEV.NET/R.FielsIn C和C-R3173
|
|
|
|
是的,保罗,我建议你做下一步
|
|
|
|
非常有趣,谢天谢地,有一点我完全同意:“许多开始的程序员…可能自己试过了,遇到了很多问题,他们认为不值得这么做。
|
|
|
|
一直……昨天晚上(我的时间)我几乎都试着回答,但是论坛停了。同时,由于“1和0”提供的链接,我成功地将所有文件合并到项目中,所有模块都试着包括标题,如果不包括的话。这很有效。老实说,我不太喜欢有一个大的主头,上面有所有模块的“定义”和“原型”,但至少它完成了它的任务。从另一方面来说,我可以把它看作一个具有所有定义的“字典”;一个单一的访问点。感谢所有。
|
|
|
|
这不是它的工作原理。在每个C文件中包含示例.h将导致示例.h被加载到您所放入的每个C文件中。编译器对任何C文件没有任何线索,除了它当前执行的那个文件之外…我并不是说“防止多重读取头文件”构造不应该被应用:它的确有它的优点:当您在另一个.h文件中包含.h文件时(不管是好的还是坏的实践是它自己的主题),您的构造将阻止对.h文件的多重读取,in防止在相同定义的多个定义上编译问题。这是几年前的普遍共识,但情况确实发生了变化。因此,使用“你自己”可能会触发一些编译器特定的技巧,这意外地可能与你所想到的名称相同。不可能,但不可能。一般的想法不是你自己定义,我通常用你所用的头文件,用我的2C。
|
|
|
|
只有小组成员才能发言,加入小组>>
5244 浏览 9 评论
2035 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3214 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2261 浏览 5 评论
779浏览 1评论
673浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
599浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
683浏览 0评论
580浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 18:24 , Processed in 1.401066 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号