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

2020-01-22 12:02发布

#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都去执行了

对上面的问题也没理解懂,可能问题未必写到点上面,麻烦有知道的帮忙下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
jackygu88
1楼-- · 2020-01-22 12:44
没人有些什么见解??
Robin_King
2楼-- · 2020-01-22 16:52
这个宏定义是定义了一组对PIN的操作内联函数。很好的用法。按你写的那个例子,用的时候,就写P00.get()这样就可以了。
jackygu88
3楼-- · 2020-01-22 18:40
 精彩回答 2  元偷偷看……
410023626
4楼-- · 2020-01-23 00:24
看不懂。。

一周热门 更多>