반응형
C에서 명시적 폴스루를 하는 방법
새로운 버전의 gcc는 다음을 제공합니다.Wimplicit-fallthrough
, 대부분의 스위치 문을 가지는 것이 좋습니다.하지만 모든 케이스 문에서 폴스루를 허용하고 싶은 스위치 문이 하나 있습니다.
명백한 실패를 할 수 있는 방법이 있습니까?저는 다음과 같이 컴파일하는 것을 피하고 싶습니다.Wno-implicit-fallthrough
이 파일에 대해서는
편집: 컴파일러 스위치나 프래그마를 통해 경고를 끄지 않고 (가능하다면) 명시적으로 폴을 수행할 수 있는 방법을 찾고 있습니다.
쓰임
switch (condition) {
case 1:
printf("1 ");
__attribute__ ((fallthrough));
case 2:
printf("2 ");
__attribute__ ((fallthrough));
case 3:
printf("3\n");
break;
}
GCC는 마법 댓글을 통해 추락합니다.
당신이 할 수 있다면 이것을 사용해서는 안 됩니다. 그것은 미친 짓이지만, 아는 것이 좋습니다.
int main(int argc, char **argv) {
(void)argv;
switch (argc) {
case 0:
argc = 1;
// fall through
case 1:
argc = 2;
};
}
는 다음을 사용하여 GCC 7.4.0에 대한 경고를 방지합니다.
gcc -Wall -Wextra main.c
man gcc
는 다음의 값에 따라 주석이 어떻게 다르게 인식되거나 인식되지 않을 수 있는지 설명합니다.
-Wimplicit-fallthrough=n
C++17[[fallthrough]]
기여하다
C++17은 이에 대한 표준화된 구문을 얻었습니다. GCC 7, -Wimplicit-fallthrough warning, and portable to clearing?
GCC 진단 프래그마스를 사용하여 소스 파일 또는 소스 파일의 일부에 대해 해당 경고를 사용하지 않도록 설정할 수 있습니다.파일 맨 위에 이 내용을 입력해 보십시오.
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
언급URL : https://stackoverflow.com/questions/44511436/how-to-do-an-explicit-fall-through-in-c
반응형
'programing' 카테고리의 다른 글
python에서 목록 이해 또는 생성자 표현식에 대한 줄 연속 (0) | 2023.10.26 |
---|---|
지정된 인증서를 사용한 Java MySQL SSL 연결 (0) | 2023.10.26 |
구글 플레이 스토어는 AV 에뮬레이터에서 지원됩니까? (0) | 2023.10.21 |
AngularJS에서 CSS 스타일을 변경할 수 없습니다. (0) | 2023.10.21 |
get_page_children () 일부 하위 페이지를 반환하지 않음 (0) | 2023.10.21 |