c ++中的时间函数通过引用
time function in c++ by reference
我正在开发一个相应地重写时间结构值的函数(如果分钟为 128,它将更改为 2 小时 8 分钟)
现在不要太在意实际功能,我的问题似乎出在 declaration/parameters/struct 本身。
错误:
- Error (active) E0070 incomplete type is not allowed
- 错误(主动)E0266“时间”不明确
- 错误(活动)E0065 需要 ';'
我做错了什么?
谢谢。
#include<iostream>
#include<iomanip>
//#include<math.h>
//void canonify(time&);
using namespace std;
//
typedef struct time
{
int h, min, sec;
};
//
const int full = 60;
//
void canonify(time& pre) // eror1 and eror2
{ // eror3
pre.min += pre.sec / full;
pre.h += pre.min/ full;
pre.sec %= full;
pre.min %= full;
}
void main()
{
time a;
a.h = 3;
a.min = 128;
a.sec = 70;
canonify(a);
cout << a.h <<":"<< a.min <<":"<< a.sec << endl;
}
结构名称 'time' 导致了冲突。您可以将结构的名称更改为其他名称并将 typedef struct 替换为 struct only 否则它将被编译器本身忽略。
这段代码对我有用。
#include <iostream>
#include <iomanip>
//#include<math.h>
//void canonify(ti&);
using namespace std;
//
struct ti //change
{
int h, min, sec;
};
//
const int full = 60;
//
void canonify(ti &pre) //change
{
int hour;
int minute;
int second;
minute = pre.sec / full;
second = minute * full - pre.sec;
hour = pre.min / full;
minute = hour * full - pre.min;
pre.h = hour;
pre.min = minute;
pre.sec = second;
}
int main()
{
ti a; //change
a.h = 3;
a.min = 128;
a.sec = 70;
canonify(a);
cout << a.h << ":" << a.min << ":" << a.sec << endl;
}
我正在开发一个相应地重写时间结构值的函数(如果分钟为 128,它将更改为 2 小时 8 分钟)
现在不要太在意实际功能,我的问题似乎出在 declaration/parameters/struct 本身。
错误:
- Error (active) E0070 incomplete type is not allowed
- 错误(主动)E0266“时间”不明确
- 错误(活动)E0065 需要 ';'
我做错了什么?
谢谢。
#include<iostream>
#include<iomanip>
//#include<math.h>
//void canonify(time&);
using namespace std;
//
typedef struct time
{
int h, min, sec;
};
//
const int full = 60;
//
void canonify(time& pre) // eror1 and eror2
{ // eror3
pre.min += pre.sec / full;
pre.h += pre.min/ full;
pre.sec %= full;
pre.min %= full;
}
void main()
{
time a;
a.h = 3;
a.min = 128;
a.sec = 70;
canonify(a);
cout << a.h <<":"<< a.min <<":"<< a.sec << endl;
}
结构名称 'time' 导致了冲突。您可以将结构的名称更改为其他名称并将 typedef struct 替换为 struct only 否则它将被编译器本身忽略。
这段代码对我有用。
#include <iostream>
#include <iomanip>
//#include<math.h>
//void canonify(ti&);
using namespace std;
//
struct ti //change
{
int h, min, sec;
};
//
const int full = 60;
//
void canonify(ti &pre) //change
{
int hour;
int minute;
int second;
minute = pre.sec / full;
second = minute * full - pre.sec;
hour = pre.min / full;
minute = hour * full - pre.min;
pre.h = hour;
pre.min = minute;
pre.sec = second;
}
int main()
{
ti a; //change
a.h = 3;
a.min = 128;
a.sec = 70;
canonify(a);
cout << a.h << ":" << a.min << ":" << a.sec << endl;
}