c - 返回值的类型检查

标签 c types typeof

我有一个列表,我希望能够在其中放置不同的类型。我有一个函数返回索引处的当前值:

void *list_index(const List * list, int index) {
    assert(index < list->size);
    return list->data[index];
}

数组中有多种类型,例如:

typedef struct structA { List *x; char *y; List *z; } structA;
typedef struct structB { List *u; char *w; } structB;

现在为了从数组中获取数据:

structA *A;
structB *B;
for(j=0... ) {
 A = list_index(list, j);
 B = list_index(list, j);
}

但是现在我如何找出返回值的类型呢?这可以用 typeof 实现吗(顺便说一句,我正在使用 GCC)?

这是否可能,或者我是否必须进行某种不同的构造?

最佳答案

您必须使用如图所示的 union here .

关于c - 返回值的类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1779483/

相关文章:

C公式无法得到正确的值

c++ - 为什么声明 int* p1, p2; 中的 p2 不是指针类型?

javascript - 为什么 typeof 回调变成了 number?

javascript - javascript中typeof的用法是什么?

Typescript 2.4.1 和更严格的泛型打破了 typeof/继承

c - 在 C 中使用作用域

mysql - 在 C 中追加或创建文件时如何请求连续 block (非碎片)?

c - 非常简单的查找表的最佳选择

java - 无法从类型对象转换为 long

mysql - 使用什么 MySQL 数据类型来存储多项选择测试的文本?