[英]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
处定义了self_energy
地方:
#define self_energy -2.0 * alpha / sqrtpi;
然后我得到一个错误:变量corr
表达式结果未使用 。
不要将宏用于此类操作。
根据您的定义:
#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;
删除宏中的分号
#define self_energy -2.0 * alpha / sqrtpi;
^^^
像这样写
#define self_energy ( -2.0 * alpha / sqrtpi )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.