visual studio 2015, 2017로 실험(32, 64bit)
122개까지 else if문을 사용할 수 있다.
if와 else문까지 포함하면 124줄이 되겠지..
else if문이 122개가 초과되면 컴파일러 한계 에러가 뜬다.
어떤 이유때문에 컴파일러 한계가 뜰까?? 왜??
docs.microsoft.com/ko-kr/cpp/error-messages/compiler-errors-1/fatal-error-c1061?view=msvc-160
심각한 오류 C1061
자세한 정보: 심각한 오류 C1061
docs.microsoft.com
컴파일러 한계 : 블록이 너무 많이 중첩되었습니다.
코드 블록의 중첩이 중첩 수준 한계인 128을 초과합니다. 이것은 32비트 및 64비트 도구 집합 모두에서 C 및 C++에 대한 컴파일러의 하드 한계입니다. 중첩 수준의 수는 범위 또는 블록을 만드는 수만큼 늘릴 수 있습니다. 예를 들어 네임스페이스, using 지시문, 전처리기 확장, 템플릿 확장, 예외 처리, 루프 구문 및 else-if 절은 모두 컴파일러로 표시되는 중첩 수준을 높입니다.
이 오류를 해결하려면 코드를 리팩터링해야 합니다. 어떤 경우든 많이 중첩된 코드는 이해하고 예측하기 어렵습니다. 중첩 수준의 수를 줄이기 위해 코드를 리팩터링하면 코드 품질을 개선하고 유지 관리를 간단하게 할 수 있습니다. 많이 중첩된 코드를 원래 컨텍스트에서 호출된 함수로 나눕니다. 블록 내에서 루프 또는 연결된 else-if 절의 수를 제한합니다.
'언어 > C++' 카테고리의 다른 글
C++ 매크로에서 사용하는 #연산자나 ##연산자 (0) | 2021.01.16 |
---|---|
C++ 문자열 리터럴이 어느 메모리에 저장될까? 데이터영역? 코드영역? (4) | 2021.01.15 |
C++ 구조체 만들때 메모리 아끼는 법. (0) | 2021.01.13 |
C++ 두 변수를 바꾸기 위한 여러가지 방법. (임시 변수 이용, 수학적 사고 이용, xor 비트 연산자 이용) (0) | 2021.01.04 |
C++ 디폴트 파라미터의 내부 동작 (0) | 2020.12.24 |