-->
当前位置:首页 > 题库 > 正文内容

主观题:电机启停 - C/C++ 函数与抽象

Luz3年前 (2022-09-06)题库335
下面两行代码源自于某工业自动化产品。在该产品中,CPU的C端口的第9脚用于控制X0电机的起停。GPIO_SetBits(GPIOC,GPIO_Pin_9)函数将C口第9脚置位▲,即将该脚置为1(高电平),从而启动电机;相应地,GPIO_ResetBits(GPIOC,GPIO_Pin_9)则将C口第9脚复位▲,即将该脚置为0(低电平),从而停止电机运转。

c++
#define X0_ONLINE GPIO_SetBits(GPIOC,GPIO_Pin_9)
#define X0_OFFLINE GPIO_ResetBits(GPIOC,GPIO_Pin_9)


请思考作者为什么要定义上述预处理宏▲,而不是直接在代码中使用GPIO_SetBits()或者GPIO_ResetBits()函数?

在本书第12章,我们会说明使用预处理宏的风险,实践中我们建议初学者不要使用预处理宏。请你设计恰当的内联函数替代上述两个宏。

说明:内联函数仍然通过调用GPIO_SetBits()和GPIO_ResetBits()实现相应功能;这两个函数源自某个特定的单片机共享库,在读者的计算机上肯定没有这两个函数,不要试图运行你编写的代码。


请同学直接文字回答,包括简答及两个内联函数的设计。


### 感觉不会?  那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)







答案:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。