【问题标题】:right operand of comma operator has no effect -wunused variable逗号运算符的右操作数无效 -wunused 变量
【发布时间】:2021-10-06 14:19:47
【问题描述】:

编译简单的 cpp 文件时出现错误。我想写一个把摄氏度变成华氏度的函数。

double przelicznik(double n)
{
    n = 1,8 * n + 32;
    return n;
}

而且它没有给我一个正确的结果。

【问题讨论】:

  • 它是n = 1.8 * n + 32;。小数点分隔符是点 . 而不是逗号 ,
  • 你设置n=1,然后计算(并丢弃)8 * n + 32。正如@jabaa 所说:在c++ 中使用.
  • 如果您确实想使用',' 作为小数点(基数),您需要设置正确的LOCALE 以达到该目的使用','。否则,您将需要使用句点。这只是一个错字,然后糟糕——只需将 '',' 更改为 '.' 即可。
  • Wdavid 您是否声称设置 LOCALE 会更改 C/C++ 在源代码中使用的甲板分隔符?你能提供一个解释的链接吗?我不知道有这样的语言功能。

标签: c++


【解决方案1】:

代码是。

  n = 1, (8 * n + 32)

逗号运算符是一种相当少见的机制,可以按顺序完成多个表达式。

正确的代码。

n = 1.8 * n + 32;

【讨论】:

  • 我怀疑用户实际上可能正在尝试使用他的 LOCALE 中的 ',' 而没有正确设置 LOCALE(或者它可能很容易是一个错字......)
  • @David 我认为更改语言环境不会影响 C++ 的解析方式。你必须使用.
  • @DavidC.Rankin , 是 c++ 语言中的运算符。更改语言环境不会改变编译器解析数据的方式。你可能想看看这个:en.cppreference.com/w/cpp/language/operator_other
  • 谢谢你,愚蠢的我。我习惯用逗号分隔函数中的变量类型,例如 double varname(double, double),我忘记了句号用于数学。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
相关资源
最近更新 更多