티스토리 뷰

Application/C/C++

[강좌] 블럭쌓기 만들기 5일차

알 수 없는 사용자 2011. 8. 13. 05:06

강좌에 들어가기 전에..

정~~~말 오랜만입니다.

7월에 한국우분투 사용자모임에서 발표를 하느라 조금 바빴습니다..

그전에는 임베디드쪽에서 일주일간 일을 하였고..

월초에는 회원목록 뽑는걸 만드느라 좀 시간좀 걸렸었습니다..

어후.. 암튼 진행하도록 하겠슴다..

 

변수? 요게 바로 프로그래밍의 핵심이거덩..

자, 변수에 대해서 알아보기 전에..

변수 말고도 상수라는게 있어요..

상수가 뭐고 변수가 뭐냐!

그냥 쉽게 말해서 상수는 안 변하는 값이에요.

변수는 시시때때로 변화를 줄 수 있는거고요.

어쨌거나 둘다 메모리를 씁니다.

 

뭐, 이건 프로그램을 보면서 설명하는게 좋겠네요..

아주 간단한, 1에서 100까지 더하는 프로그램이에요.

#include <stdio.h>
int main()
{
  const int min = 1, max = 100;
  int i, sum = 0;
  for(i = min; i <= max; i++)
  {
     sum = sum + i;
  }
  printf("%d~%d까지 모두 더한 결과는 %d입니다.\n", min, max, sum);
  return 0;
}

 

여기서는, 변수를 일단 i라는 변수랑 sum이라는 변수를 선언했지요.

int i, sum=0;

요 코드는 선언입니다.

선언은, “내가 i랑 sum을 변수로 쓰겠다!'”라는 표현이죠.

int는 “숫자를 저장하겠다!” 라는거구요.

char 이라고 쓰면 “문자를 저장하겠다!”라는건데요,

근데 요즘같은 unicode 세상에서 “문자”라는건 이미 char의 범위를 넘습니다만, 그냥 영어는 char 범위안에 있고 문자열은 또 따로 쓰는게 있으니 넘어가도록 합시다(누구맘대로)

bool이라고 하는녀석도 있는데, 이녀석은 flag(있거나 없거나 둘중하나) 같은걸로 많이들 이용하지요.

그리고 보시면 i는 걍 있고 sum은 0이라고 했지요?

초기값을 지정해줄수가 있어요.

지정 안해주면 어떻게 되냐구요?

지가 알아서 랜덤으로 잡아요 ㅋㅋ

signed, unsigned 뭐 이런것도 있는데, 부호가 있냐없냐 차이고.. 양수로만 계산할거면 unsigned가 좀더 메모리도 덜 먹고(사실 요즘 세상에 1비트 차이야 있겠습니까만은) 조금이나마 실수할 확률을 줄여주죠..

 

빼먹은게 있다구요? 어디어디?

아~ const 요놈?

요놈은 변수임에도 불구하고 안 바뀔것들을 선언하는겁니다.

뭐.. const를 붙이건 안 붙이건 그닥 상관은 없긴 하지만, 요게 또 실수를 좀 줄여주는 놈이에요.

바꿀라 그러면 컴터가 못해먹겠다고 하거든요.

컴터 때려봐야 손만 아픕니다. 걍 에러 수정 하세요 ㅋ

컴파일러가 에러 뱉어줄때가 좋을때입니다.

나중에 무슨 memory leak이나 컴터가 감지하기 애매한 논리오류같은거 생기는거에 비하면 컴파일 에러는 정말 별 승질 안 나는 에러죠.

 

변수 형식 졸라 많고 상수 형식도 졸라 많고 무슨 Generic이니 포인터니 배열이니 하는거 많은데..

포인터와 배열은 조금 지나서 설명을 해드릴거고, 나머지는 컴파일러에 종속된것들이지만 쓸일이 그렇게 많진 않고..

블럭쌓기 게임에 그런것까지 생각하면 머리아프니, 혹시라도 더 알고 싶으시면 gcc manual이나 msdn을 참조하시면 됩니다..

뭐, 다른 책들에서는 표까지 그려가며 친절하게 설명을 해주긴 하지만..

여기서 당장 써먹긴 좀 그렇고, 2차 강의때 좀더 다루도록 하겠습니다..

 

 

뭐 아무것도 배운게 없는것 같은데 5일차 마무립니다..

저는 뭐 정확하게 이게 뭐다! 하고 가르칠 수 있는 능력은 안 됩니다.

그런 것들은 다른 좋은 강사님들이 쓰신것도 많지요..

제 강의는 그냥 길잡이 정도로 생각하시면 됩니다.

 

수고 많으셨습니다. 다음 6일차에서 뵙도록 하겠습니다.