gpt4 book ai didi

c - 为串行端口设备存储字符串命令的最优雅方式?

转载 作者:太空宇宙 更新时间:2023-11-04 00:53:00 34 4
gpt4 key购买 nike

假设我正在与串行端口设备通信,并且有大量命令 (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/

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