336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

300제 지금 보니 내용이 조금 이상하다고 생각되고 오해의 소지가 있는 부분이 있어서 저의 애드립 그리고 설명으로


이번장을 작성 하려합니다.


우선 const 란 키워드를 이해해야합니다.


변수 앞에 const 키워드가 붙기 이전에


변수 선언과 초기화에 대해서 잠시 설명 하겠습니다. 


// example 1

int test;


test = 1;


// example 2

int test = 2;


예제1 번과 예제 2번의 차이점에 대해서 설명해보도록하겠습니다.


예제 1번은 변수를 선언하고 다음줄에서 변수에 값을 대입하는 구조 이고


예제 2번은 변수를 선언하고 바로 값을 대입하는 구조입니다.


이런 구조적 차이는 메모리에 기록하는 순서에 차이를 가지고있습니다.


예제 1번은 운영체제가 메모리에 변수의 공간을 확보한뒤 다음 명령 줄을 읽어들여 초기화 하는 방법입니다.


그렇다면 예제 1번에 있는 값은 무엇을까요? 초기화 되지 않은 쓰레기 값이 존재 합니다. 이부분은 나중에 메모리 구조와


프로그램과 변수의 생명주기에 대해서 설명할때 디테일하게 설명하도록할게요


예제 2번은 운영체제가 메모리에 변수 공간을 확보함과 동시에 값을 초기화 해줍니다.


프로그램을 하다보면 예제1번 과같이 사용할수도 있고 예제 2번과도 사용할수 있습니다. 저의 개인적인 판단으로는


2번 예제 방법을 권장합니다. 왜냐면 나중에 초기화를 깜빡하고 나두었을 시 프로그램이 오작동 하는 실수를 범할수


있기 때문에 한번 값을 초기화 해주고 시작하는것이 바람직하다고 생각합니다.


자그럼 const 설명으로 돌아가서 ~


const는 변수를 상수화 시키는 키워드입니다. 변수가 변수가 아니게 되는 것이지요.!!!


이것은 const 키워를 선언함과 동시에 바로 초기화 해줘야한다는 말이 되기도 하고 선언과동시에 값을 초기화 하지 않을때 


에러 메시지가 나옵니다. 그렇지 않는 컴파일러도 있습니다. 그렇지 않을경우 사용했을때 error C4700 으로 에러가


발생됩니다.


그리고 이 값은 프로그램이 램에서 해제 되기 직전까지 변하지 않고 존재 하게됩니다.


만약 cosnt 키워드가 붙은 변수의 값을 변경 하면 error C2166 메시지가 발생합니다. 


그리니 사용할때 조금만 신경써주면 에러가 발생하지 않습니다. 참 쉽죠?!!!^^


소스코드 : main.c

#include <stdio.h>


int main (void)

{

const char Test1 = 1;


//const char Test2; //error 나중에 앞에 주석을 제거 해서 확인해보세요 그리고 아래 printf("%d\n",Test2); 도 같이 풀어 주셔야 합니다.

//Test1 = 2; //error 이것 또한 앞에 주석을 제거 해서 확인해보세요


printf("%d\n",Test1);

//printf("%d\n",Test2);

return 0;

}


결과



+ Recent posts