在 C 中,我們可以使用“[[nodiscard]]”來裝飾我們的回傳型別,如果結果未使用,則會觸發編譯器警告。
這對于強制執行錯誤代碼特別有用
auto dont_forget_to_check = do_something_important();
assert(dont_forget_to_check);
C是否存在類似的東西?
uj5u.com熱心網友回復:
沒有標準的方法可以做到這一點,但 gcc 確實支持這個warn_unused_result屬性。
__attribute__ ((warn_unused_result))
int foo()
{
return 5;
}
int main()
{
foo();
return 0;
}
編譯器輸出:
[dbush@db-centos7 ~]$ gcc -g -Wall -Wextra -o x1 x1.c
x1.c: In function ‘main’:
x1.c:11:8: warning: ignoring return value of ‘foo’, declared with attribute warn_unused_result [-Wunused-result]
foo();
^
uj5u.com熱心網友回復:
C是否存在類似的東西?
還沒有,但可能在C2x中。
C 11 樣式屬性語法和nodiscard, maybe_unused, deprecated, 和fallthroughattributes。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/467414.html
標籤:C
