C 코딩 스타일 가이드 - 변수 범위

반응형

본 문서는 소프트웨어 개발 시 준수해야 하는 코딩 스타일을 정의하고 가이드한다.

본 문서의 가이드는 C 언어를 대상으로 하고 있으며 C99 표준이 적용된다(추후 C11 등 최신 표준으로 변경 적용 가능하며, 이에 따라 본 문서의 내용이 일부 변경될 수 있다).

본 문서의 가이드는 구글 C++ 코딩 스타일 가이드(https://google.github.io/styleguide/cppguide.html)를 기반으로 내부적인 필요에 따라 일부 내용을 수정, 변경하여 적용한 것이다.

 

변수 범위

변수의 범위를 적절히 조절함으로써 코드의 가독성이나 성능을 높일 수 있다.

 

지역 변수

R-1. 함수 내 변수는 가능한 한 좁은 범위에 둔다.

C99 이상에서는 함수 어디에서나 변수 선언을 할 수 있지만, 변수를 가능한 한 국한된 범위로 선언하고 최대한 첫 번째 사용처에 가깝게 선언한다. 이는 읽는 사람이 선언을 찾고 변수의 타입과 초기값을 알아내는 것을 쉽게 한다. 

 

R-2. 되도록 선언과 동시에 초기화 한다.

// 나쁨 - 선언과 초기화가 분리되어 있다.
int i;
i = f();  

// 좋음 - 선언과 동시에 초기화 된다.
int j = g();  

 

R-3. for, if, while 문에서 조건검사에 사용되는 변수는 되도록 해당 라인에서 변수를 선언한다. 

이 경우 해당 변수명은 코드의 다른 부분에서 재 선언 가능하다.

for(int i = 0; i < 10; i++)
while (const char* p = strchr(str, '/')) {
  str = p + 1;
}

 

R-4. 성능 면에서 변수를 반복문 내에서의 선언하기보다는 반복문 앞에서 선언하는 것이 좋다. 

물론 가능할 경우에만 적용한다.

// 나쁨 - 선언이 반복문 내에 있다.
for(int i = 0; i < 10000; i++) {
  int j;
  handling(j);
}

// 좋음 - 선언이 반복문 밖에 있다.
int j;
for(int i = 0; i < 10000; i++) {
  handling(j);
}

 

기타

상식적이고 일관성있게 작성한다.

코드를 수정하는 경우 잠시 주변의 코드를 살펴 그것의 스타일을 판단하고, 해당 코드와 일관성을 가지도록 작성한다.

 

이 스타일 가이드를 따르지 않는 기존 코드와의 일관성을 유지하기 위해 본 가이드라인을 따르지 않을 수 있다.

댓글

Designed by JB FACTORY