假设我正在与串行端口设备通信,并且有大量命令 (74) 用于控制此类设备。存储和使用它们的最佳方式是什么?
当然我可以按以下方式组织它们:
static char *cmd_msgs[] =
{
"start",
"stop",
"reset",
"quit",
"",
"",
"",
"",
...
};
或人类可读:
char cmd_start_str[] = "start";
...
char cmd_quit_str[] = "quit";
有人可以指出处理此类任务的工作示例吗?
最佳答案
第一种方法很好 - 不要使用大量具有唯一名称的全局变量,它们很难引用,尤其是当您想遍历它们时。这就是字符串数组的用途(您的第一种方式)。如果你想要人类可读的代码(你应该想要的),使用一个合理命名的枚举,它的值对应于实际的命令字符串。所以做一些像
const char *cmds[] = {
"command 1",
"command 2",
"Print Hello World",
"Explode House"
};
enum {
COMMAND_ONE,
COMMAND_TWO,
COMMAND_SAYHELLO,
COMMAND_BOOM
};
这样你就可以通过索引数组轻松引用你的命令,但是你仍然可以通过编写 cmds[COMMAND_SAYHELLO]
等来获得他的可读性。
关于c - 为串行端口设备存储字符串命令的最优雅方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12128949/