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,进行使用,这也正是宏参数使用过程中出现的副作用!
用户618739 2013-5-24 09:29
用户1207413 2013-5-23 08:38
用户1547067 2013-3-6 22:09
用户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