프로그래밍

c언어/c++ const

업글 2020. 10. 21. 06:49

안녕하세요 업글입니다. c언어 const에 대한 팁을 공유드립니다.

 

const 키워드는 상수로 선언하는 키워드입니다.

 

예제.

const int a = 5;

a = 3; // 컴파일러 에러

 

위의 예제에서 보는 것처럼 const 키워드 사용 시 상수로 선언되기 때문에 선언 이후에 값을 변화시키려고 하는 경우 컴파일러에서 에러가 나기 때문에 변화 시킬 수 없습니다.const에 대한 간단한 내용은 여기까지입니다.

 

const 키워드는 함수의 인자로 유용하게 사용할 수 있습니다.함수 내부에서 함수의 인자 값을 읽어서 사용하기만 하고 변화되지 않는 경우 유용하게 사용할 수 있습니다.

 

예제.

const 미사용

int Add(int a, int b){

 int result;

 result = a + b;

 

 return result;

}

 

const 사용

int Add(const int a, const int b){

 int result;

 /*

 심플한 코드이므로 쉽게 발견할 수 있는 실수이지만

 코드가 복잡한 경우 쉽게 발견하기 힘들 수 있음

 이러한 코드를 컴파일러에서 자동으로 

 */

 a = b; // 실수 코드

 

 result = a + b;

  

 return result;

}

 

위의 예제와 같이 함수 인자에 const 키워드를 사용했을 때 몇가지 장점이 있습니다.

 

첫번째, 가독성이 좋아집니다.

함수로 전달되는 인자의 값이 변화되지 않는 것을 코드만 보고도 알수 있기 때문에

코드의 의도를 쉽게 파악할 수 있어 가독성이 좋아집니다.

 

두번째, 코드의 실수를 줄일 수 있습니다.

함수 내부에서 인자 값을 실수로 변경 시키는 코드를 작성하는 경우

컴파일러에서 에러를 출력 해주기 때문에 코드의 실수를 줄일 수 있습니다.

 

여기서 잠깐 착각할 수 있는 점에 설명드립니다.회사후배에게 함수의 인자에 const 키워드를 사용하는 방법에 대해서 알려줬었습니다.아래의 예제와 같이 함수의 인자로 넣어주는 변수에도 const 키워드를 사용해야된다고 착각하는 모습을 보았습니다.함수의 인자로 넣어주는 변수는 상수가 아니어도 됩니다. 함수의 인자는 새로운 메모리에 위치하기 때문입니다.

 

예제.

int Add(const int a, const int b);

 

int main(){ int sum;

 

 /* 착각하여 함수 인자에 입력되는 변수에 const 사용하는 경우 */ const int var = 1; const int var2 = 2;

 

 /*

 원래 코드의 의도

 */

 int var = 1; int var2 = 1;   sum = Add(var, var2);

 

 return 0;}

 

함수 내부에서 변경되지 않는 인자인 경우 const를 사용하는 습관을 가지시면 보다가독성이 좋고 실수를 줄일 수 있는 코드를 작성할 수 있습니다.

'프로그래밍' 카테고리의 다른 글

쓰레드(Thread)에 대한 생각  (0) 2020.11.12
c언어/c++ int 크기  (0) 2020.11.11
주석에 대한 생각  (0) 2020.10.19
c언어/c++ static  (0) 2020.10.19
c언어/c++ enum  (0) 2020.10.14