【发布时间】:2012-11-27 02:01:48
【问题描述】:
嘿,我只是想知道这些警告是否会导致 .exe 在启动时崩溃。 以下是警告:
Warning 1 warning C4244: '=' : conversion from 'double' to 'int', possible loss of data c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\stats.cpp 54 1 MaroonedCA2
Warning 2 warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\player.cpp 75 1 MaroonedCA2
Warning 3 warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\player.cpp 92 1 MaroonedCA2
Warning 4 warning C4018: '<' : signed/unsigned mismatch c:\users\conor\documents\college\dkit - year 2 - repeat\dkit - year 2 - semester 1 - repeat\games programming\maroonedca2\maroonedca2\inventory.cpp 63 1 MaroonedCA2
1
int stats[SIZE];
stats[0] = Status.health;
stats[1] = Status.strength;
stats[2] = Status.hitpoints;
stats[3] = Status.armour;
stats[4] = Status.luck;
运气是双重的,没有被施放。
2
int Player :: hitPoints()
{
srand(time(0)); // seed random number generator based on current time
int randomNumber= rand(); // generate random number
int hitPoints = (randomNumber% 15) + 1; // get a number between 1 and 20
return hitPoints;
}
3
int Player :: fatigue()
{
srand(time(0)); // seed random number generator based on current time
int randomNumber= rand(); // generate random number
int fatigue = (randomNumber% 5) + 1; // get a number between 1 and 5
return fatigue;
}
4
for (int i= 0; i< inventory.size(); ++i)
cout<< inventory[i] << endl;
}
cout << "\n-----------------------------------------\n";
【问题讨论】:
-
我看不到。但是您应该了解这些警告的含义,它们很容易修复,最好不要养成编写生成它们的代码的习惯。
-
好吧,警告对生成的代码没有影响,所以没有。但是,警告可能表明您的代码中存在可能导致崩溃的错误。 (或者您可能有这样的错误并且没有警告。)上述警告比直接导致崩溃的警告更暗示数据丢失,但可能存在导致崩溃的循环控制或数组索引问题。 (最好检查每个警告,了解发出警告的原因,如果它是“非问题”,则插入显式强制转换或其他任何内容以使其静音并表明您了解问题。)