【问题标题】:Conflicting types and casting in CC中的冲突类型和强制转换
【发布时间】:2015-05-29 18:01:01
【问题描述】:

这可能是一个简单的问题,您可以弄清楚我的 getAverage 函数只是遇到了一些问题,它返回一个浮点变量类型。我在我的函数所在的第 114 行不断收到“冲突类型”错误消息。我不确定我的语法对于我的方法是否错误或发生了什么。任何帮助将不胜感激。

这是我的功能:

float getAverage(int nume, int deno)
{
    float average;
    average = (float)(nume/deno);
    return average;
}

编辑:我的功能在我的主要功能之下。

【问题讨论】:

  • 你可能想做 ((float)nume/deno) 来实际进行类型转换
  • 即使在尝试之后,我仍然会遇到类型冲突的错误。我还在学习C,所以我确定一旦我弄明白了,我就得给自己打一巴掌哈哈。
  • @UnderDog 同意。甚至可以使用average = (float)(((double)nume)/deno); 来获得更大的int 值的精度。
  • 您需要移动浮点型转换以避免进行整数除法。

标签: c types casting


【解决方案1】:

如果在声明函数之前调用函数,编译器将假定它返回int。当您的函数返回 float 时,您将收到 conflicting types 错误。

【讨论】:

  • 啊谢谢你解决了我的问题我不知道编译器假定 int 除非你预先声明了函数。谢谢!
猜你喜欢
  • 2019-05-12
  • 2021-01-24
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多