在c ++中错误“表达式结果未使用”

时间:2017-03-02 00:46:42

标签: c++ debugging syntax-error c++14 clion

我有一些代码:

double calculate_self_term(double area)     {
    double corr = 2.0 * sqrtpi / sqrt(area);
    return calculate_reciprocal(0, 0, 0) + self_energy + corr;
}

其中self_energy在开头定义:

#define self_energy -2.0 * alpha / sqrtpi;

然后我收到一个错误: 变量corr表达式结果未使用

2 个答案:

答案 0 :(得分:2)

不要使用宏来做这些事情。

根据您的定义:

#define self_energy -2.0 * alpha / sqrtpi;

您的代码替代:

return calculate_reciprocal(0, 0, 0) + -2.0 * alpha / sqrtpi; + corr;

此时问题应该是显而易见的 - 在+corr语句后,你有return表达式语句,它什么都不做。

如果你没有使用宏,你就不会遇到这样的问题。不要使用宏来做这些事情。这可能只是一个功能:

constexpr auto self_energy(double alpha) { return -2.0 * alpha / sqrtpi; }
// ...
return calculate_reciprocal(0, 0, 0) + self_energy(alpha) + corr;

答案 1 :(得分:1)

删除宏中的分号

#define self_energy -2.0 * alpha / sqrtpi;
                                        ^^^

并将其写成

#define self_energy ( -2.0 * alpha / sqrtpi )
相关问题