簡體   English   中英

C ++中出現錯誤“表達式結果未使用”

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM