【发布时间】:2014-06-17 09:19:14
【问题描述】:
首先我会发布所需的代码。
#define STRING_LEFT "05000858FB"
#define STRING_RIGHT "05000B3E45"
#define STRING_LENGTH_MAX 16
char stringname[STRING_LENGTH_MAX+1];
if(strcmp(stringname, STRING_LEFT)==0)
{
// do stuff A here
}
else if(strcmp(stringname, STRING_RIGHT)==0)
{
// do stuff B here
}
stringname 是通过传输十六进制值的传感器触发的,需要与 STRING_LEFT 和 STRING_RIGHT 进行比较,然后执行不同的操作。当 stringname 和 STRING_LEFT 相等(==0)时,它会做 A。如果我下次激活 STRING_RIGHT,它会再次做 A。当我第二次使用 RIGHT 时,它会做 B。如果我再次使用 LEFT,它会做B,第二次 A。所以这个功能总是像“一个事件背后”......我不想那样做。我怎样才能避免这种情况?
TIA
【问题讨论】:
-
stringname在您的代码中也是变量和函数。stringname函数在哪里?有错别字吗? -
是的,编辑那个,只是这里的一个错字,不是在原始代码中
-
您的描述没有意义。可能
stringname的内容实际上并不是您认为的那样,但是我们无法仅根据您发布的内容来判断。请发布一个不依赖任何外部输入的示例程序(例如硬编码某些传感器响应)并显示问题。