기타 강좌

3-3-변수의 선언

변수를 사용하려면 먼저 선언해야 한다. 선언(Declaration)이란 컴파일러에게 앞으로 이런 이런 이름을 가진 어떤 타입의 변수를 사용하겠으니 준비해 달라고 부탁하는 것이다. 예를 들어 Num이라는 이름으로 정수형 변수를 선언하면 컴파일러는 이 변수를 위해 정수형 하나를 저장할 수 있는 메모리 4바이트를 할당한다. 앞으로 이 메모리에 들어있는 값은Num이라는 변수 이름으로 참조하면 된다. 변수를 선언하는 기본 형식은 다음과 같다.

 

타입 변수명[=초기값][,변수명, 변수명, ...];

 

기본 형식에서 [ ] 괄호안에 있는 것은 모두 생략 가능하다는 뜻이며 ... 표기는 임의 개수만큼 반복될 수 있다는 뜻이다. 반드시 필요한 것은 타입과 변수명, 그리고 제일 끝에 있는 세미콜론밖에 없다. 변수 선언문도 문장이므로 끝에 세미콜론은 반드시 있어야 한다. 정수형 변수 Num을 선언하고 싶다면 다음과 같이 선언문을 작성한다.

 

int Num;

 

잠시 후에 다시 배우겠지만 정수형 타입은 int키워드로 표현한다. 이렇게 선언만 하면 Num을 위해 메모리가 할당된다. 그러나 할당만 되며 값은 초기화되지 않는데 C는 속도를 위해 특별한 지정이 없으면 변수값을 초기화하지 않는다. 성능을 최우선으로 하는 C의 특징을 잘 보여주는 대목이다. 이렇게 되면 변수는 할당된 번지에 원래부터 들어 있던 의미없는 값을 가지게 되며 이 값을 쓰레기값(Garbage)이라고 한다. 만약 선언과 동시에 어떤 값으로 초기화하고 싶다면 변수명 다음에 = 구두점을 쓰고 원하는 초기값을 뒤에 쓰면 된다.

 

int Num=12;

 

Num 변수가 선언됨과 동시에 이 변수가 12라는 값을 가지도록 초기화된다. C는 성능을 최우선으로 하기 때문에 명시적인 지정이 없으면 별다른 동작을 하지 않는다. 초기값이 필요없으면 선언만 하고 필요할 때만 초기값을 지정한다. 여러 개의 변수를 같은 타입으로 한꺼번에 선언할 수도 있는데 콤마로 구분된 변수명을 계속 나열하면 된다. 이때도 = 구분자로 그 중 일부를 초기화할 수 있다.

 

int a,b=3,c,d;

 

4개의 정수형 변수가 선언되며 이 중 b는 3으로 초기화된다. 물론 다음처럼 각각의 변수 선언을 별도의 명령으로 따로 선언해도 상관없다. 효과는 동일하지만 줄 수가 길어진다.

 

int a;

int b=3;

int c;

int d;

 

다른 타입의 변수는 한꺼번에 같이 선언할 수 없으며 각각 따로 선언해야 한다. 다음은 정수형 변수 두 개와 실수형 변수 하나를 선언한 것이다.

 

int angle, radius;

double ratio;

 

변수는 필요한만큼 얼마든지 선언할 수 있다. 앞장에서 실습했던 삼각형 그리기 예제를 보면 두 개의 정수형 변수 i와 j를 선언하고 있다


List of Articles
분류 제목 글쓴이 날짜 조회 수
Vegas Pro 베가스 강좌 목록 아방스 2017.09.28 886
파이널컷X 파컷 강좌 목록 아방스 2017.06.18 757
기타 [mac/win] 어도비 cc 2014 오프라인 업데이트 파일 다운로드 주소 file 아방스 2015.05.10 481
기타 특별한 게임제작 특강! '게임제작, 어렵지 않아요!' 수퍼말이오 2015.10.28 337
게임기획 게임기획에 대한 강의2 1 현준갓 2015.11.01 652
어플개발 소프트아이스크림의 SRPG 만들기 - 1장 게임 제작 준비 3 소프트아이스크림 2016.06.15 856
어플개발 소프트아이스크림의 SRPG 만들기 - 2장 게임 타이틀 만들기 2 file 소프트아이스크림 2016.06.20 412
어플개발 소프트아이스크림의 SRPG 만들기 - 3장 게임 타이틀 BGM / 옵션 / 블러효과 만들기 2 file 소프트아이스크림 2016.06.27 402
에프터 이펙트 에펙 aec 파일 불러오기 오류 'After Effects error : Failed to connect to Adobe Premiere Pro Dynamic Link. (86 :: 1) file 아방스 2016.07.13 5953
OSX (맥) 맥(Mac) smi <-> srt 파일 상호 변환 프로그램 다운로드(무료) 1 file 아방스 2016.07.16 2630
어플개발 소프트아이스크림의 SRPG 만들기 - 4장 기본 문법과 배열 ! file 소프트아이스크림 2016.07.18 233
어플개발 소프트아이스크림의 SRPG 만들기 - 5장 게임 구성 및 잡담 + 배경 만들기 file 소프트아이스크림 2016.07.31 240
어플개발 소프트아이스크림의 SRPG 만들기 - 6장 텍스쳐 애니메이션 file 소프트아이스크림 2016.09.14 305
기타 [Windows] 윈도우 무비 메이커 2012 다운로드 링크 file 아방스 2016.11.19 757
어도비 프리미어 [프리미어cc 2015 강좌] pip 효과 만들기 아방스 2016.12.19 202
Vegas Pro 베가스 영화 비율 영상으로 만들기 (레터박스) 아방스 2016.12.19 717
어도비 프리미어 [어도비 프리미어] 영상에 자막 넣는 방법 아방스 2016.12.19 1106
어도비 프리미어 [프리미어 프로] 검은색 배경이 있는 자막 만들기 아방스 2016.12.19 10156
기타 [C++] 게임엔진 가이드 1. 게임 엔진이란? 쿼티만세12345 2017.01.01 249
기타 [C++] 게임엔진 가이드 2 App Layer. 쿼티만세12345 2017.01.01 544
기타 [C++] 게임엔진 가이드 3 App Class 쿼티만세12345 2017.01.01 270
어도비 프리미어 [프리미어프로] 음성변조 효과 적용 하기 아방스 2017.01.01 583
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next
/ 19