C attribute: maybe_unused (since C23)
From cppreference.net
<
c
|
language
|
attributes
사용되지 않는 엔터티에 대한 경고를 억제합니다.
목차 |
구문
[[
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); // 릴리스 모드에서 assert는 컴파일되지 않고 b는 사용되지 않음 // [[maybe_unused]]로 선언되었으므로 경고가 발생하지 않음 } // 매개변수 cond1과 cond2가 사용되지 않지만 경고 없음 int main(void) { f(1, 1); }
참고 항목
|
C++ 문서
에 대한
maybe_unused
|