본문 바로가기
프로그래밍/C

3. C언어 (상수)

by Choraengyi 2017. 1. 11.
728x90

 C 언어 상수에 대하여 알아보겠습니다.


변수가 값이 유동적인 값이라면 상수는 변하지 않는 값입니다. 보통 말하는 상수는 한번 사용하고 없어지는 임시 값이라고도 합니다. 


 매크로 상수


매크로 상수는 #define 으로 정의되는 값입니다. 보통 헤더파일 밑에 선언하며 선언시 해당 프로그램에서 이 선언된 값을 사용할 수 있습니다. 또 다른 특징은 전처리기 문장이라는 것입니다. 


 사용법은 #define 변수명 값 이렇게 사용됩니다.


컴파일러 전에 실행되는 문장이기 때문에 유용하게 쓰일 수 있습니다. 이러한 전처리기 코드의 성질을 이용한 것도 전에 해본적이 있습니다.


2016/12/22 - [etc] - main 함수 없는 C 언어??


전치리기 수행이 되면 어떤식으로 적용되어 컴파일 되는지 간단히 알아보겠습니다.



 위에는 실제 작성 코드이고 밑에 코드는 전처리기 실행했다고 가정했을때의 변화된 코드 입니다. 



 더 쉽게 표현해 보았습니다. 이러한 매크로 상수를 사용하여 작성한 실행결과 입니다.



 #define 은 뒤에 세미콜론을 붙이면 안됩니다. C 코드 내부 문장이 아니기 때문에, 물론 함수 안쪽에 배치할 수 있기도 하지만 보통 함수 바깥쪽에 써서 상수를 정의 하여 사용하게 됩니다.


 const 변수


변수 선언시 맨 앞에 const 라는 키워드를 붙이면 해당 변수의 값은 변경할 수가 없습니다. 사용법은 아래와 같습니다.


const 데이터형식 변수명 = 값;


이렇게 const 로 선언한 변수는 값을 변경하려고 하면 컴파일 에러가 발생합니다.



const 변수로 선언한 값을 바꾸어 주려고 하니 에러가 난 것을 볼 수 있습니다. 5번째 줄을 주석처리 하게되면, 정상처리됨을 알 수 있습니다.



 매크로 상수는 메모리에 저장되지 않고 데이터형을 가지지 않는 반면에, const 변수는 메모리에 저장되고, 데이터값을 가지게 됩니다.


이렇게 상수를 일일이 안쓰고 변수로 사용하여 쓰는 이유는 코딩상에서 식별하기 쉬움(ex, 변수명을 sum, sub, avr 등으로 선언)을 위함이고, 같은 상수가 여러번 반복되어 나오는 코드의 경우 미리 변수에 들어가있으면 변수 선언부분의 값만 바꾸어 주면 다바뀌어 수정이 간편합니다. 

 

이러한 상수들과 변수들을 적절히 활용하여 최적화 되고 간편한 프로그램을 만들어야 합니다.


상수에 대해 간단히 알아보았습니다. 


 


728x90
반응형

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

6. C언어 (사용자 정의 함수)  (0) 2017.01.19
5. C언어 (데이터)  (0) 2017.01.14
4. C언어 (문자/문자열 입출력)  (0) 2017.01.13
2. C언어 (변수)  (0) 2017.01.10
1. C언어 (hello world)  (0) 2017.01.05

댓글