C++ 中的错误 "expression result is unused"
error "expression result is unused" in c++
我有一些代码:
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
的表达式结果未使用 。
删除宏中的分号
#define self_energy -2.0 * alpha / sqrtpi;
^^^
写成
#define self_energy ( -2.0 * alpha / sqrtpi )
不要为这些事情使用宏。
根据您的定义:
#define self_energy -2.0 * alpha / sqrtpi;
您的代码替换为:
return calculate_reciprocal(0, 0, 0) + -2.0 * alpha / sqrtpi; + corr;
此时问题应该很明显 - 在 return
语句之后有这个 +corr
表达式语句,它什么也不做。
如果您没有使用宏,就不会 运行 遇到这样的问题。不要为这些事情使用宏。这可能只是一个函数:
constexpr auto self_energy(double alpha) { return -2.0 * alpha / sqrtpi; }
// ...
return calculate_reciprocal(0, 0, 0) + self_energy(alpha) + corr;
我有一些代码:
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
的表达式结果未使用 。
删除宏中的分号
#define self_energy -2.0 * alpha / sqrtpi;
^^^
写成
#define self_energy ( -2.0 * alpha / sqrtpi )
不要为这些事情使用宏。
根据您的定义:
#define self_energy -2.0 * alpha / sqrtpi;
您的代码替换为:
return calculate_reciprocal(0, 0, 0) + -2.0 * alpha / sqrtpi; + corr;
此时问题应该很明显 - 在 return
语句之后有这个 +corr
表达式语句,它什么也不做。
如果您没有使用宏,就不会 运行 遇到这样的问题。不要为这些事情使用宏。这可能只是一个函数:
constexpr auto self_energy(double alpha) { return -2.0 * alpha / sqrtpi; }
// ...
return calculate_reciprocal(0, 0, 0) + self_energy(alpha) + corr;