[英]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.