gpt4 book ai didi

使用字符串检查宏定义

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:51 25 4
gpt4 key购买 nike

我不确定是否可以这样使用宏。

在我的嵌入式系统项目中,我想知道是否定义了一个宏,这取决于我拥有的两个字符串。

例如:

#define FAN_1 PORTAbits.RA0

#define LIGHT_1 PORTAbits.RA1

现在,当我收到以下形式的请求时:

char *arg1="FAN"; ("LIGHT")

char *arg2="1";

使用这两个参数,我想直接检查我的风扇 1 连接的引脚并检查其状态。

我想要一种方法,这样我就不必使用 strcmp() 或直接匹配来检查 arg1 和 arg2。我可以直接写 if(some_macro(arg1,arg2)==1){} else {}

请指导是否可以使用宏,因为引脚只能这样定义。

此外,如果没有,那么还有其他方法可以做到这一点吗?

最佳答案

不可以,不能这样使用宏。宏是一种预处理器功能,在编译代码之前由预处理器扩展。听起来您收到的请求只在运行时才知道。如果此信息仅在运行时已知,则无法在预处理器时检查请求是针对 FAN_1 还是 LIGHT_1。您需要使用条件检查来确定请求的目的。

根据 pin 库的名称(“FAN”、“LIGHT”等),可能只打开 arg1 的第一个字符就足够了,或者可能是前几个人物。此外,不是将 arg2 完全解析为一个整数,您也可以打开它的字符。这将允许您识别正在请求的 pin,而无需调用 strcmp()atoi()

关于使用字符串检查宏定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com