gpt4 book ai didi

C - 函数结构

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:51 27 4
gpt4 key购买 nike

所以我对 C 编程还是很陌生。虽然我学过Python,所以我熟悉一些代码。

例如,当我在 python 中创建一个函数时,我能够使它通用并可用于不同的类。

我想在这里做类似的事情。我有两个看起来几乎相同的结构。我想对两个 struct 使用相同的函数,但当然我不能将 struct 名称作为参数发送到函数中。我该怎么办?

现在不要担心函数的作用。能够在同一个函数中使用两个 struct 的原则对我来说很重要。如果这是一个完全错误的观点,那么我很抱歉,但这是我遇到这个问题时的第一个想法。

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);
}

最佳答案

一个结构可以有两个实例。
该函数可以接受任一实例并根据需要对其进行处理。

typedef struct{
int number;
struct node *next;
}mystruct;
void function(int x, mystruct *eachstruct);//prototype
int main()
{
int number1 = 10;
int number2 = 20;
//declare two instances of mystruct
mystruct list_1 = { 0, NULL};
mystruct list_2 = { 0, NULL};
// call the function with one or the other instance of mystruct
function(number1, &list_1);
function(number2, &list_2);
}

void function(int x, mystruct *eachstruct)
{
//do stuff in function
eachstruct->number = x;
if ( eachstruct->next == NULL)
{
//do more stuff
}
}

关于C - 函数结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28453681/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com