gpt4 book ai didi

c - 难以将结构传递给函数

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

虽然关于这个问题有很多线索,但我找不到一个可以解决我的问题,如果我很厚,请道歉。一个重要的区别是我的解决方案不能使用指针。我已经开始了关于结构的章节和我正在处理的问题调用一个函数,该函数接受两个参数 t1 和 t2,这两个参数在结构的框架中是两个不同的时间。我尽可能地减少了代码,并且发现我的结构项的值没有通过函数。

#include<stdio.h>

struct time
{
int hour;
int minute;
int second;
};

struct time t1 = {3, 45, 15};
struct time t2 = {9, 44, 03};

int main (void)
{
struct time elapsedTime(struct time t1,struct time t2);

return 0;
}

struct time elapsedTime(struct time t1,struct time t2)
{
printf ("%i:%i:%i\n", t1.hour, t1.minute, t1.second);
printf ("%i:%i:%i\n", t2.hour, t2.minute, t2.second);

return;
}

最佳答案

您在 main 中声明了函数,但没有调用它。

代替:

int main (void)
{
struct time elapsedTime(struct time t1,struct time t2);

return 0;
}

你需要:

struct time elapsedTime(struct time t1,struct time t2);

int main (void)
{
struct time mt = elapsedTime(t1, t2);

// Do something with mt...

return 0;
}

返回“大容量”数据项的更常见方式是作为指针:

typedef struct my_time {
int hour;
int minute;
int second;
} my_time_t;

void elapsedTime(my_time_t t1, my_time_t t2, my_time_t *t3)
{
t3->hour = ...;
t3->minute = ...;
t3->second = ...;

...
}

注意:我强烈建议避免为您的 struct 使用通用的通用名称,例如 time,因为它有可能与某些系统定义的值(现在或之后)。避免命名您自己的变量名称,例如 timefilestring 等...

关于c - 难以将结构传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729488/

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