【发布时间】:2021-10-09 05:53:19
【问题描述】:
一个小sn-p如下图:
struct module SELECT(FILE *f, int id, int db) {
if (id == 1) {
module table;
return table;
} else if (id == 2) {
level table;
return table;
}
}
如何使函数返回 module 或 level 结构取决于函数处理?
这是我的module 和level 结构:
typedef struct module {
int id;
char name[30];
int mem_num;
int cell_num;
int del;
} module;
typedef struct level {
int mem_num;
int cell_count;
int def;
} level;
调用示例:
str 与关卡结构连接的 IK(例如)。
FILE *tmp = fopen(str, "r");
level res = SELECT(tmp, 1, 1);
【问题讨论】:
-
SELECT被声明为返回module,但您在SELECT的第 7 行中返回了level。你期待什么? -
你不能。一个函数有一个返回类型。做两个函数。
-
这看起来像XY Problem
-
你打算怎么打电话给
SELECT? Edit 并举个例子。 -
您可以同时传递指向
module和level的指针,然后返回一个标志来说明您设置了哪个,但正如@Jabberwocky 所说,您可能遇到了XY 问题。