原创 C语言中宏的使用(一)

2013-5-16 23:22 1068 16 18 分类: 消费电子

C语言提供了很多的预处理命令,宏命令就是其中的一项,在嵌入式编程中巧用宏命令对我们程序编写具有很大的帮助!

在此贴出之前让我很纠结的一个宏技巧的使用:

#ifndef _MARCO_H
#define _MARCO_H 1

#define MACRO1(x) _MACRO1(x)        
#define MACRO2(x) _MACRO2(x)   
                                     
#define _MACRO1(a,b) a
#define _MACRO2(a,b) b

#define CONNECTEXTEND(a,b,c) a ## b ## c
#define CONNECT(a,b,c) CONNECTEXTEND(a,b,c)  

#define PIN_CLR(PIN) CONNECT( _LAT,MACRO1(LED),MACRO2(LED) )=0

#endif

这个简单的宏使用是为了能移植到不同的单片机I/O口,例如使用这个宏时只需在在定义#define LED A,1就可以到A1口进行很方便的操作,当初看到这个例子时,一看很好明白,但最近自己模仿时总是编译出错,原因在于没有一个将宏进行转化的过程,也就是#define MACRO1(x) _MACRO1(x) ,如果没有这句对LED进行转化,那么宏就会将A,1当作a,进行使用,这也正是宏参数使用过程中出现的副作用!

文章评论2条评论)

登录后参与讨论

用户618739 2013-5-24 09:29

能说得再详细些吗?

用户1207413 2013-5-23 08:38

没看明白……

用户1547067 2013-3-6 22:09

e额。。这也太酷毙了

用户1625273 2013-2-22 08:33

确实是这样。

用户1406868 2013-2-8 22:27

现状如是!一切还要时间!推销商的水平,用户水平......都是需要提高的,全民做试验的能动性有多少?有待等待!

用户1406868 2013-2-8 00:15

前段說得好 最後一段有點偏頗

用户779016 2013-2-7 21:33

以上说的有道理现在看来也就是这样自己做电源自己组装灯具。

自做自受 2013-2-7 09:40

说来话长了。
1997,从事超高亮度、纯彩色、广视角LED户外视像屏。对LED有了浓厚的兴趣和研究
2000,业余时间研发LED特性照明,用于装饰、告示、指引等等公共户内户外场所。信心十足,就是没有启动金。寻求与等待中......
等来的是人类掀起的LED用于普通照明的滚滚浪潮,过度了。不困惑,停手就是了。
LED有用武之地,不可滥用。否则即不节能,也不环保。

用户1277994 2013-1-4 13:08

那咋整呢?
相关推荐阅读
huhaomcu_856934054 2014-08-19 20:54
uCOS-Ⅱ
启动uCOS-Ⅱ的学习与移植!...
huhaomcu_856934054 2014-07-20 10:08
多通道电路原理图
简单说说关于Protel中提供的多通道原理绘制与PCB布局布线. Protel(不知99SE是否可以)有提供多通道电路原理图的设计,这项功能在有些方面还是很有用处的,比如说:当部分原理图在一张图...
huhaomcu_856934054 2014-04-07 09:10
IAR制作工程模板
我个人学习新的MCU过程一般会是如下过程,建立一个个的DEMO工程,每个DEMO工程学习一个外设,所以每个DEMO程序都很简单,但是在建立一个个DEMO程序的过程中,会发现开始的步骤基本上就是相同...
huhaomcu_856934054 2014-03-14 18:06
新公司与老公司的比较
在新公司上了几天班真心有点想念以前的老公司了! 下面来比较比较新公司与老公司吧: 1.业务量。新公司的项目更多,人员更多,涉及的面也较广,整体的技术水平要大大强于以前的老公司。以前老公司里...
huhaomcu_856934054 2014-02-24 15:01
辞职了!
辞职了,但愿柳暗花明又一村!!...
huhaomcu_856934054 2014-02-21 09:22
回来啦!
之前因为身体原因一直在家休息,直到今天才来武汉上班。但愿今年个人的工作能有所上升!...
我要评论
2
16
关闭 站长推荐上一条 /2 下一条