完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
相关推荐
19个回答
|
|
|
这是“代码保护”,也就是“包含保护”。防止文件被包含两次是非常常见的技术。第一行测试是否已经遇到第二行。编辑:更正的术语。
|
|
|
|
|
|
定义中的替换文本是可选的。
|
|
|
|
|
|
QHB:是的…我知道FIFNDEF和Y定义如何工作。{定义大小10〉。下面的指令有标识符“size”,由预处理程序替换为“10”。但是,在这里,定义“x -Delaysh”没有意义,导致这行中的NoeLoad文本,这就是我想问的。
|
|
|
|
|
|
如果没有替换文本定义预处理器指令,那意味着什么?
|
|
|
|
|
|
它只是意味着该特定符号被定义为没有内容。你能做的唯一一件事,就是测试它被定义为是/否。
|
|
|
|
|
|
不,你不要再看我的答案。第一行测试是否遇到第二行。该测试不需要任何替换文本。
|
|
|
|
|
|
HJonker:谢谢,也许这是处理多重定义的保护????但我不太清楚它是如何运作的。
|
|
|
|
|
|
我已经说过了。如果某些内容再次包含相同的头文件,则符号“u DELAYS_H”将已经定义,因此ifndef测试将防止文件的其余部分再次使用。
|
|
|
|
|
|
嗨,它像这样“工作”…….如果你以前没有看过这个定义,包括下面的文本…….下面文本的第一行创建了上面测试的定义,因此任何相同的测试之后都会排除测试之后的代码。
|
|
|
|
|
|
不,这不是特例。它是一个扩展到任何东西的宏,所以它可以在任何“不允许”的上下文中使用。
|
|
|
|
|
|
我认为Andy_Taiwanes人很难接受不用替换字符串就能“.”某件事,这与从未定义过它完全不同。仅仅“ifdef”能够检测出您已经完成了它,就是它变得有用的原因。
|
|
|
|
|
|
QHB:我完全明白了!非常感谢,让我用实例解释一下,h定义CLOCK 200 b.h定义CLOCK 200 b.h包括< a.h> c.h包括< a.h> c h包括< a.h> c.c.文件包括<> c文件包含< b h>\
|
|
|
|
|
|
你明白了。第二个定义与第一个定义相同,可能不会产生任何错误。一般来说,你应该避免包括来自其他头文件的头文件。
|
|
|
|
|
|
是啊。。。。但我一直在研究微芯片的示例代码,有很多头文件包含在其他头文件中:
|
|
|
|
|
|
不要把微代码中的示例代码作为C编程的顶峰!;)
|
|
|
|
|
|
包括警卫
|
|
|
|
|
|
谢谢:
|
|
|
|
|
|
如果你没有定义它,它就不会被取代。如果你已经定义了它,它将被无任何替换。这对我来说是个巨大的差异。
|
|
|
|
|
|
的确。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
501 浏览 0 评论
5808 浏览 9 评论
2350 浏览 8 评论
2237 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3543 浏览 3 评论
1156浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1119浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
887浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
501浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 08:09 , Processed in 1.341018 second(s), Total 109, Slave 92 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3647