abs()不能在Xcode上工作?
我收到了来自标准库abs()的错误值。 在下面的示例中,最小值& max被正确计算为-18635和3402,但absMax产生3402,所以它应该是18635.应该这样工作还是我犯了一个错误?abs()不能在Xcode上工作?
double NormalizeWaveData(SInt16 *inData, long inlength)
{
int maxAmp = 0, minAmp=0, absMax=0;
for(long i=0; i<inlength; i++)
{
if(inData[i] > maxAmp)
maxAmp = inData[i];
if(inData[i] < minAmp)
minAmp = inData[i];
if(abs(inData[i]) > absMax)
absMax = inData[i];
}
...
您需要使用
if(abs(inData[i]) > absMax)
absMax = abs(inData[i]);
谢谢Anoop,我愚蠢的错误! – 2013-02-27 11:23:36
更多解释:您将absMax设置为-18635(而不是“abs()”值),那么当计算3402时,该值更大。 – cjk 2013-02-27 11:25:48
@cjk:没错。我在上面提到了同样的评论,但忘了在这里提到:) – 2013-02-27 11:30:18
这是C,C++或Objective-C?另外,你从哪里获得你定义的'abs'(即它是一个自定义定义还是你从标准库头中获得)? – 2013-02-27 11:04:28
Xcode是一个IDE,请按照Paul R – 2013-02-27 11:07:38
@CRDave的要求用正确的语言重新标记*请阅读你的评论*问题是数据类型abs是int,因此可能无法用于int *这是你想说的...! ! – 2013-02-27 11:13:59