【发布时间】:2015-02-11 11:52:03
【问题描述】:
所以我对 C 编程还是很陌生。不过我学过 Python,所以我对一些代码很熟悉。
例如,当我在 python 中创建一个函数时,我可以使其通用并适用于不同的类。
我想在这里做类似的事情。我有两个看起来几乎相同的结构。我想对structs 使用相同的函数,但是我当然不能将struct 名称作为参数发送到函数中。我该怎么做?
现在不用担心函数的作用。它的原则是能够在同一个函数中使用两个structs,这对我来说很重要。如果这是一个完全错误的观点,那么我很抱歉,但这是我遇到这个问题时的第一个想法。
typedef struct{
int number;
struct node *next;
}struct_1;
struct node *head;
typedef struct{
int number;
struct node *next;
}struct_2;
void main()
{
int number1 = 10;
int number2 = 20;
function(number1);
function(number2);
}
void function(int x, struct) // Here is where I want to be able to use 2 different structs for the same function
{
struct *curr, *head;
curr=(node1*)malloc(sizeof(node1));
printf("%d", curr->number);
}
【问题讨论】:
-
able to use你能澄清一下吗?" -
struct_1和struct_2在您的示例中具有相同的成员。你想达到什么目标?您想要各种类型有效负载的链表吗? -
这是一个完全错误的观点。不要尝试将 Python 动态类型应用于 C。如果您有两个结构 - 即使具有相同的字段 - 对于 C,它们是不同的,仅此而已。有一些技巧可以规避这一点,但由于您是 C 新手,所以不要从技巧开始。
-
@diaco 为什么你一开始就需要两个结构来做同一件事?
-
你想要一个结构的两个副本。不是两种不同的数据类型。