我正试图将结构部分作为参数传入。然而,我在编译时收到了以下消息:"未知类型名称'time1'"。以下是导致这些问题的代码部分:
#include <stdio.h>
struct time {
int hour;
int minutes;
int seconds;
};
struct time time1;
struct time time2;
struct time elapsed;
int hourDif (time1.hour, time2.hour) {
if (time2.hour >= time1.hour) {
elapsed.hour = time2.hour - time1.hour;
}
else {
elapsed.hour = 24 - (time1.hour - time2.hour);
}
return 0;
}
此
int hourDif (time1.hour, time2.hour)
不是函数调用,它是函数声明,在您的情况下,它也是定义,您需要的是
int hourDif (struct time time1, struct time time2)
{
int difference;
difference = 0; /* some compilers might complain */
if (time2.hour >= time1.hour)
difference = time2.hour - time1.hour;
else
difference = 24 - (time1.hour - time2.hour);
return difference;
}
然后在代码的某个地方,如果不需要全局变量,你就会有
struct time time1;
struct time time2;
/* initialize `time1' and `time2' */
int difference = hourDiff(time1, time2);