关于宏定义,定义多个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都去执行了
对上面的问题也没理解懂,可能问题未必写到点上面,麻烦有知道的帮忙下。 没人有些什么见解?? 这个宏定义是定义了一组对PIN的操作内联函数。很好的用法。按你写的那个例子,用的时候,就写P00.get()这样就可以了。 谢谢了,这个宏定义好像一般介绍宏的,没有类似写法的,所以也找不到相关资料学习下。 用法是知道,但是为什么可以这么写,原理是什么,有点弄不清楚,望请提供点资料啥的 看不懂。。
页:
[1]