我正在尝试用 C 语言为我的 FlipperZero 制作一个应用程序,一个自动答题器。但我在更改“选定”变量时遇到了太多滞后的问题。我不知道如何解决这个问题。
澄清一下,我并不是想做数学;我只是想做数学题。这些是按键输入的按键代码。
if (selected == 0) {
Key_code = 0x04;
}
if (selected == 1) {
Key_code = 0x05;
}
if (selected == 2) {
Key_code = 0x06;
}
if (selected == 3) {
Key_code = 0x07;
}
if (selected == 4) {
Key_code = 0x08;
}
if (selected == 5) {
Key_code = 0x09;
}
if (selected == 6) {
Key_code = 0x0a;
}
if (selected == 7) {
Key_code = 0x0b;
}
if (selected == 8) {
Key_code = 0x0c;
}
if (selected == 9) {
Key_code = 0x0d;
}
if (selected == 10) {
Key_code = 0x0e;
}
if (selected == 11) {
Key_code = 0x0f;
}
if (selected == 12) {
Key_code = 0x10;
}
if (selected == 13) {
Key_code = 0x11;
}
if (selected == 14) {
Key_code = 0x12;
}
if (selected == 15) {
Key_code = 0x13;
}
if (selected == 16) {
Key_code = 0x14;
}
if (selected == 17) {
Key_code = 0x15;
}
if (selected == 18) {
Key_code = 0x16;
}
if (selected == 19) {
Key_code = 0x17;
}
if (selected == 20) {
Key_code = 0x18;
}
if (selected == 21) {
Key_code = 0x19;
}
if (selected == 22) {
Key_code = 0x1a;
}
if (selected == 23) {
Key_code = 0x1b;
}
if (selected == 24) {
Key_code = 0x1c;
}
if (selected == 25) {
Key_code = 0x1d;
}
我有一个.h 文件,每个字母都有一堆变量,但我不知道在这种情况下如何使用它。
说到这我就迷失了。我不知道如何开始优化它。
如果不是很明显,我是 C 语言新手,我只是为了制作 Flipper 应用程序而学习它。
如果你的代码实际上是这样继续的,那么这样做不是更容易吗:
int getKey(int selected) {
return selected + 4;
}
如果没有,您可以使用数组或 switch 语句来优化此代码,这将使其更高效且更易于管理。我将向您展示如何使用数组来做到这一点。
首先,您可以创建一个数组将
selected
变量映射到 Key_code
值:
// Define an array to map selected values to Key_code values
uint8_t keyCodes[] = {
0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d
};
// Check if selected is within a valid range
if (selected >= 0 && selected <= 25) {
Key_code = keyCodes[selected];
} else {
// Handle the case where selected is out of range
// You can set a default value or take some other action.
}
使用此代码,您可以创建一个数组
keyCodes
,将 selected
的每个值映射到相应的 Key_code
。然后,在访问数组之前检查 selected
是否在有效范围内。如果selected
超出范围,可以根据需要处理。