c++ - 在结构数组中设置多行错误

标签 c++ c struct

我想用 C++ 创建一个模块系统。以下是我的程序,没有任何问题。

void First_Modules()
{
    // Anything ...
}

void Second_Modules()
{
    // Anything ...
}


typedef void(*Func) ();

struct All_Modules
{
    char *Name;
    Func This_Function;
};

struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }, {"Load_Modules_2", Second_Modules }};

我的问题是我想在不使用的情况下将模块信息发送到 Load_All_Fu​​nctions

struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }, {"Load_Modules_2", Second_Modules }};

我想要这样的东西:

struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }};

struct All_Modules Load_All_Functions[] = { {"Load_Modules_2", Second_Modules }};

(拆分每个设置过程)。但是当我尝试运行它时,我看到了这个错误 '加载':重新定义;不同的基本类型

我该怎么办?我不想用

struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }, {"Load_Modules_2", Second_Modules }};

我想把每个完整的单独设置成

struct All_Modules Load_All_Functions[] = { {"Load_Modules_1", First_Modules }};

struct All_Modules Load_All_Functions[] = { {"Load_Modules_2", Second_Modules }};

我该怎么办?我想要每个模块的函数名称并将其加载到程序中的每个位置。

最佳答案

在这种情况下,无需声明结构数组

如果程序是用 C 编写的,则尝试以下操作

struct All_Modules Load_All_Functions;

Load_All_Functions = ( struct All_Modules ){"Load_Modules_1", First_Modules };

Load_All_Functions = ( struct All_Modules ){"Load_Modules_2", Second_Modules };

在C++中你可以写

struct All_Modules Load_All_Functions;

Load_All_Functions = {"Load_Modules_1", First_Modules };

Load_All_Functions = {"Load_Modules_2", Second_Modules };

考虑到在 C++ 中数据成员 name 必须像这样声明

const char *Name;

如果您要使用字符串文字作为初始值设定项。

关于c++ - 在结构数组中设置多行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32170536/

相关文章:

c++ - C++ 中的简单警告框,而不是 Objective-C

c++ - Visual C++ 说 void 函数需要返回一个值

在指向数组的指针上调用 memset?

c - 当字符串文字以换行符结尾时,strdup 大小为 4 的无效读取\n

c - 为什么 sizeof run on struct 必须有括号

c++ - 无法从 getsockname 获取本地主机 IP 地址?

c++ - x86下划线前缀问题 : Calling NASM function from C++ function works in x64 but fails in x86

使用 #if ... #endif 检查版本号

c++ - 从 std::vector 中删除时出现段错误

c - 使用Struct和指针的程序中的不确定性(C语言程序)