名稱空間
變體
操作

C 屬性: maybe_unused (C23 起)

來自 cppreference.com
< c‎ | 語言‎ | 屬性

抑制未使用的實體的警告。

目錄

[編輯] 語法

[[ maybe_unused ]]
[[ __maybe_unused__ ]]

[編輯] 解釋

此屬性可出現在以下實體的宣告中

  • 結構體/聯合體: struct [[maybe_unused]] S;,
  • typedef 名稱: [[maybe_unused]] typedef S* PS;,
  • 物件: [[maybe_unused]] int x;,
  • 結構體/聯合體成員: union U { [[maybe_unused]] int n; };,
  • 函式: [[maybe_unused]] void f(void);,
  • 列舉: enum [[maybe_unused]] E {};,
  • 列舉器: enum { A [[maybe_unused]], B [[maybe_unused]] = 42 };

如果編譯器對未使用的實體發出警告,則對於任何宣告為 maybe_unused 的實體,該警告將被抑制。

[編輯] 示例

#include <assert.h>
 
[[maybe_unused]] void f([[maybe_unused]] _Bool cond1, [[maybe_unused]] _Bool cond2)
{
   [[maybe_unused]] _Bool b = cond1 && cond2;
   assert(b); // in release mode, assert is compiled out, and b is unused
              // no warning because it is declared [[maybe_unused]]
} // parameters cond1 and cond2 are not used, no warning
 
int main(void)
{
    f(1, 1);
}

[編輯] 另請參見

C++ 文件,關於 maybe_unused