[cppcheck] The scope of the variable 'enable' can be reduced

잡설

정적 분석기 cppcheck를 돌리던 도중 다음과 같은 (style)을 발견했습니다.
(style) The scope of the variable 'on' can be reduced.
뭔소리지? 하고 찾아보니 코딩 스타일 문제이며 대충 코드를 줄일수 있습니다. 라는 뜻이군요.

해당 코드는 다음과 같습니다.

bool on = false
for (int i = 0; i < MAX_A; i++) {
    on = A[i];
    x[i].enable(on);
}

bool on 을 굳이 for scope 바깥에 선언하지 말고 안에 선언하라는 뜻이었습니다. c 스타일로 c++ 개발하던 제겐 변수선언을 함수 초기에 선언하던 습관이 남아있어서 그랬던거죠. 이참에 정리해보았습니다.
  • for loop 를 도는 동안에 bool on을 계속 선언하지 않도록 컴파일러가 최적화함
  • for scope 아래에서 의도하지 않게 on을 사용하여 잘못된 값을 사용하는 경우 차단
아래와 같이 수정하고, 잘못된 습관 하나 고쳤습니다.

for (int i = 0; i < MAX_A; i++) {
    bool on = A[i];
    x[i].enable(on);
}


댓글

이 블로그의 인기 게시물

WSL2 Ubuntu 20.04 및 네트워크 설정

리눅스 멀티코어를 사용하는 tar 압축/해제

git pull 을 했더니 branch가 갈라지는 경우