具有多个数组的结构

Struct with multiple Array

本文关键字:结构 数组      更新时间:2023-10-16

我对结构中的数组有一个小问题。我需要一个长度为 2 的 char 数组的(常量(结构。它们将是我的 uart 消息(2 个字符(的命令。

当我打印 2chars 的数组值时,将打印该点之后的所有字符。但是我只需要2个项目,如果做得好,怎么能做到。

我总共会有大约 125 条指令

struct Test_struct {
 char a[2]={'a','a'};
 char b[2]={'b','b'};
 char c[2]={'c','c'};
};
const struct Test_struct Test;
Tfunc(Test.b);

void Tfunc(const char *funct)
{
  cout << funct;
}

制作指令列表的简单方法。 1 条指令是 2 个元素的字符。

在未来,我喜欢使用这样的东西。Command.Network.IDID 将是我的 2 个字符。网络将是包含所有网络命令的结构。另一个列表将是安全或IO,...和全局结构命令。它必须是结构体。

当我在编程时,我喜欢键入命令。 ,然后选择一个子槽,然后选择一个指令。然后我不需要在大列表中搜索。我不喜欢: 常量字符[2] ID = ... 常量字符[2] ...

你有什么提示吗?

std::cout 上的<<运算符期望char*以 null 结尾。您的char数组没有空终止符,这就是为什么它会继续打印,直到它碰巧遇到内存中的 0(或崩溃(。如果您只想为不同的命令提供一堆全局常量,请考虑使用例如具有一堆std::string_view常量的命名空间:

#include <string_view>
namespace Commands
{
    using namespace std::literals;
    inline constexpr auto a = "aa"sv;
    inline constexpr auto b = "bb"sv;
    inline constexpr auto c = "cc"sv;
}