变量在此函数中使用未初始化
Variable is used uninitialized in this function
我已经完成了程序,但是我遇到了一个错误。 它说总,分钟,小时,秒在此函数中使用未初始化。我尝试使用不同的变量,并初始化了变量,但它仍然不起作用。有人可以帮我弄清楚我做错了什么。我把time( total,hours, mins, secs);
#include <iostream>
using namespace std;
void time(int, int, int, int);
int main()
{
int total;
int hours;
int mins;
int seconds;
int secs;
cout << "Enter the number of seconds: ";
cin >> seconds;
time( total, hours, mins, secs);
cout << "The number of hours is: " << hours << endl;
cout << "The number of minutes is: " << mins << endl;
cout << "The number of seconds is: " << secs << endl;
return 0;
}
void time(int total, int &hours, int &min, int &sec)
{
int rem1;
hours = total / 3600;
rem1 = total % 3600;
min = rem1 / 60;
sec = rem1 % 60;
return ;
}
编译器输出:
15:38: warning: 'total' is used uninitialized in this function [-Wuninitialized]
15:38: warning: 'hours' is used uninitialized in this function [-Wuninitialized]
15:38: warning: 'mins' is used uninitialized in this function [-Wuninitialized]
15:38: warning: 'secs' is used uninitialized in this function [-Wuninitialized]
我已经完成了该程序,但是出现一个错误。 它说总计,分钟,小时,秒在此函数中使用未初始化。我尝试使用不同的变量,并初始化了变量,但它仍然不起作用。有人可以帮我弄清楚我做错了什么。我把时间(总计,小时,分钟,秒(;
您的函数原型在这里不正确:
void time(int, int, int, int);
它应该是:
void time(int, int&, int&, int&);
一旦修复(大部分(,您的警告应该会消失。不过,您仍然有一些其他错误,例如,您使用seconds
作为输入变量,但随后丢弃它,而是将未初始化的变量total
传递给您的函数 - 您可能应该只使用 total
作为您的输入变量并摆脱seconds
。
相关文章:
- 正在初始化函数指针的constexpr数组
- 我应该在C++中使用构造函数还是初始化函数
- 使用 extern const 初始化函数
- 初始化函数中的静态变量,而不是在文件开始时
- 如何初始化函数中指针数组的大小
- 正在初始化初始化函数中的静态类成员
- call_once初始化函数
- SWIG + CMAKE:缺少初始化函数
- 如何创建在 c++ 中只读取一次的初始化函数
- 类内的强制初始化函数
- 使用元编程在编译时初始化函数数组
- 数组初始化函数:将数组作为指针传递:C++
- 从nodejs模块初始化函数报告失败
- 导入错误:动态模块未定义初始化函数
- 大括号初始化函数指针数组:从 'void (*(*)())()' 到 'void (*)()' 的转换无效
- 奇怪的行为,用 int 初始化函数指针
- 使用 init_seg 调用初始化函数
- 正在初始化函数内部的std::数组
- 初始化函数内部的指针.它是如何工作的
- JNI初始化函数以及缓存类和字段