C 모든 케이스 뒤에 있는 스위치 대소문자의 중괄호
C에서switch-case
흐름 제어. 다음 중괄호 { }을(를) 넣어야 합니다.case
해당 블록에 변수가 정의되어 있는지 확인합니다.
매번 곱슬곱슬한 교정기를 끼우는 것은 나쁜 습관인가요?case
변수 선언에 관계없이?
예를 들어 다음과 같습니다.
switch(i) {
case 1: {
int j = 4;
...code...
} break;
case 2: { //No variable being declared! Brace OK?
...code...
} break;
}
모든 케이스 블록에서 교정기를 사용하는 것은 물론 나쁜 스타일도 아닙니다.변수 선언으로 인해 중괄호가 있는 일부 케이스 블록이 있는 경우 다른 것에 중괄호를 추가하면 코딩 스타일이 보다 일관되게 될 수 있습니다.
즉, 케이스 블록 내에 변수를 직선 C로 선언하는 것은 좋지 않을 수 있습니다.컴파일러에 의해 허용될 수도 있지만 보다 깨끗한 솔루션이 있을 수 있습니다.서로 배타적인 케이스 블록은 몇 가지 일반적인 일시 변수를 공유할 수 있습니다.또는 케이스 블록이 도우미 기능으로 더 잘 기능하는 것을 알 수 있습니다.
컴파일러가 코드를 최적화하는 방법 때문에 속도 위반 없이 모든 케이스 스테이트먼트에서 중괄호를 사용할 수 있습니다.코더의 스타일과 취향입니다.
가장 선호되는 사용법은 브레이스를 사용하지 않는 것입니다.단, 액티브한 개발 중 모든 케이스에서 브레이스를 사용하는 것은 때때로 코드에 추가하기가 더 쉬울 수 있습니다.
이것은 단지 동양미학일 뿐입니다.왜냐하면 '케이스' 스테이트먼트는 하나의 명령어만 필요로 하는 것이 아니라 라벨로서 기능하는 코드를 통과시키기 때문입니다.따라서 블록은 필요하지 않으며 유효하지 않습니다.
변수 포함의 경우, 대괄호는 변수의 컨텍스트를 작성하기 위해 사용할 때 사용합니다.대괄호를 사용하는 것은 매우 의미가 있습니다.플랫폼에 따라 컴파일러가 다를 수 있습니다.컴파일러가 포함되어 있지 않은 컴파일러의 동작은 다릅니다.
일반적으로 변수 초기화를 건너뛰는 것은 잘못된 관행입니다.goto
또는switch
이것은 블록이 없는 경우에 발생하는 현상입니다.case
.
C99에서는 초기화를 뛰어넘는 것, 즉 가변 길이 배열이 불법인 경우도 있습니다.C++의 비POD와 유사하게 구성되어야 하며, 나중에 변수에 액세스하기 위해 초기화가 필요합니다.따라서 이 경우 block 문을 사용해야 합니다.
교정기를 각각 사용하는 것은 좋지 않은 스타일이라고 생각한다.case
, C의 과 유사합니다.goto
그리고 에서는 각각의 C언어로 롭게 선언할 수 .case
(또는 마음에 드는 곳) 새로운 블록을 도입하지 않아도 되지만, 일부 사람들(예외 포함)은 그 스타일을 나쁘게 생각한다.
작은 포인트를 추가하는 것만으로, 많은 에디터나 IDE를 사용하면, 블록의 접힘이나 자동 들여쓰기를 할 수 있습니다.또, 복수의 에디터나 IDE를 사용하면, 일치하는 브레이스로 점프할 수 있습니다.개인적으로는, 브레이크에서 매칭 케이스 스테이트먼트로 점프할 수 있는 것은 모릅니다.
다른 사용자(또는 몇 개월 후 사용자 자신의 사용자)를 디버깅하거나 팩터링할 때 코드의 섹션을 축소하거나 일치하는 대소문자로 점프할 수 있는 복잡한 대소문자를 포함하는 코드는 특히 코드에 들여쓰기 변형이 포함되어 있는 경우 매우 중요합니다.
그것은 전염병과 같은 복잡한 사례 진술을 피하는 것이 거의 항상 좋은 조언이라고 말했다.
언급URL : https://stackoverflow.com/questions/4241545/c-switch-case-curly-braces-after-every-case
'programing' 카테고리의 다른 글
1234 == '1234 검정'이 참으로 평가되는 이유는 무엇입니까? (0) | 2022.10.29 |
---|---|
포어치 인덱스는 어떻게 찾죠? (0) | 2022.10.29 |
트러블 슈팅: "복잡하지 않은 이름의 use 스테이트먼트...효과가 없다. (0) | 2022.10.29 |
ENTER 키를 눌러 웹 양식을 제출하지 않도록 하려면 어떻게 해야 합니까? (0) | 2022.10.29 |
테이블 잠금과 관련된 트랜잭션 분리 수준 (0) | 2022.10.29 |