jackygu88 发表于 2014-10-22 09:47:28

关于宏定义,定义多个inline函数

#define MAKE_NEW_PIN(name, pin, pin_dir, pin_sel, pin_dir_bit, pin_inp, pin_inp_bit) \
inline async command bool name.get()      { return ( pin != 0); } \
inline async command void name.set()      { pin = 1; } \
inline async command void name.clr()      { pin = 0; } \
async command void      name.toggle()   { atomic { pin = ~pin; } }

请教下,如果按照上面的宏定义,有几个疑问,想请教下
(1) 这个宏定义,是不是定义了多个内联函数
(2)这个内联函数中又有get()set()等函数, 这个宏定义是如何执行的,如果MAKE_NEW_PIN(P00, P0_0, P0DIR, P0_ALT, 0, P0INP, 5); 是不是宏定义上面的get set clr togle都去执行了

对上面的问题也没理解懂,可能问题未必写到点上面,麻烦有知道的帮忙下。

jackygu88 发表于 2014-10-22 19:42:30

没人有些什么见解??

Robin_King 发表于 2014-10-22 19:49:13

这个宏定义是定义了一组对PIN的操作内联函数。很好的用法。按你写的那个例子,用的时候,就写P00.get()这样就可以了。

jackygu88 发表于 2014-10-24 16:28:49

谢谢了,这个宏定义好像一般介绍宏的,没有类似写法的,所以也找不到相关资料学习下。 用法是知道,但是为什么可以这么写,原理是什么,有点弄不清楚,望请提供点资料啥的

410023626 发表于 2014-10-24 19:12:41

看不懂。。
页: [1]
查看完整版本: 关于宏定义,定义多个inline函数