'Computer/C++'에 해당되는 글 8건

  1. 2010.07.13 2장 변수명에 대한 간단한 이야기
  2. 2010.07.13 1장 헤더
posted by nsakura 2010. 7. 13. 11:10

뭐 int가 뭐고 이런건 버리도록 하죠. c++을 하고 int char등등은 알고 있을 것이고 기본적으로 어떻게 메모리에 할당되는지 까지는

알 것이니.. 그런데 왜 갑자기 변수에 대한 이야기를 하냐고?

솔직히 2학년때 자료 구조 시간이었어....

변수가 뭐죠? 라는 교수님의 질문. '아니 지금 그걸 왜 물어봐?'

라고 생각했다. 1학년때 다 배운것 들 아닌가?

하지만 의외로 답하는 사람은 없었다..

귀찮아서인지.. 아니면 몰라서인지는 모르지만....

솔직히 입문자들은 변수명을 지정할때 아주 가벼운 마음으로 한다.

ex-> int a;

이런식으로 말이다. 난 상당히 이부분을 싫어한다.. 한 3~4줄 짜리라면 모를까

보통 3~4줄짜리는 한번 테스트하고 지울 코드인경우가 많기 때문에 상관은 없다.

하지만 저것이 버릇이 된다는 점이 문제다.

만일 5000줄 짜리 코딩을 혼자서 한다고 치자.

int a,b등등등;

만들었다. 하지만 프로그래밍 완성하고 테스트도중에 버그가 발생하였다.

당연히 고치러 가야지. 그런데 이런 말을 할껄?

어? a가... 뭐지? b는 뭐고..

이러면 곤란하다 디버그도 매우 힘들 뿐더러 ...

그리고

'님아 주석 쓰센'

라는 분도 계실거다.

아니 주석을 쓸 빠에는 애초 변수명을 어느정도 예상가능하게 쓰면 되잖아. 라고 반박할것이고 이게 보통 정설일 것 이다.

그럼 이야기를 좀 돌려서 말해보자 그럼 변수명이라는게 뭘까?

여기서 간단하게 포인터이야기로 나가는데....

그냥 포인터가 뭐지 이런 생각은 버리도록 하자. 그냥 그런게 있나보다 라고만 생각하자.

학교에 친구들이 있어요.

40명이에요.

별로 크지도 않고 울타리도 정해져있죠.

어느날 nsakrua가 moonwind보고 bindk집에 놀러가자! 라고 했습닏.

여기서 변수명은 뭘까요?

bindk가 되겠죠.

그런데 bindk의 집은 [주안 4동 1xx 2xx호] 라고 합시다. 이건 주소값이죠.

존내 길어요.

친구내 놀러가는데

야 주안4동 1xx 2xx호에 놀러가자! 라고 하는 사람이 있나요? 친구 끼리..

없죠. 주소라는건 길고 외우기도 힘들어요. 그걸 대채 하기위에 변수명이라는걸 쓰는겁니다.

즉 bindk집에 놀러가자 하면 아 bindk집에 가는구나~ 주소는 몰라도 알잖아요?

반 친구들 이름이 의미 없게 a, b, c등등 되어있다고 보세요.

헛갈리지 않을까요? 그래서 변수명을 알아볼수있게 어느정도 의미를 부여한다는거죠.. 그래서 이 이야기를 한겁니다.

갑자기 생각난것도 있고....




그럼 주소같은경우 언제 쓰냐구요?

짜장면 배달을 시킨다고 치죠. 아 bindk집에 짜장면 1그릇이요.

이러면 어떨까요? 모르겠죠 bindk집이 어디야? 라고 하지 않겠습니까. 또한 bindk를 안다고 쳐도 그 bindk가 우리가 원하는 bindk

인지 어떻게 장담을 할까요? 또한가지 동명이인이면? 그럴때는 주소를 사용하겠죠?

프로그램도 마찬가지 입니다.



뭐 한번쯤 생각을 해봐야하지 않겠나? 해서 글을 적어본겁니다.

'Computer > C++' 카테고리의 다른 글

이거이거 하다보니 너무 똑같더라.  (0) 2010.07.13
단항 스코프 식별 연산자  (0) 2010.07.13
예제1 입출력을 했으면 이게 나와야죵?! 계산기!  (0) 2010.07.13
예제  (0) 2010.07.13
1장 헤더  (0) 2010.07.13
posted by nsakura 2010. 7. 13. 10:37

c++입니다.

뭐. c++을 아예 못하는것은 아니였습니다만.. c언어처럼 자유자제로 사용을 못했었죠.

그래서 이번기회에 공부를 하려고 합니다.

책은..
    
       예제로 쉽게 풀어쓴 c++이구요

      성안당의 책입니다.

<참고로 완전 극 초보적인 내용의 포스팅은 자제 하도록 하겠습니다.>

그럼 자주 쓰는 헤더파일 입니다.

 헤더파일 내용 
cassert  디버깅에 필요한 진단 매크로, <assert.h> 대신사용
cctype 문자 검사와 변환 함수로 구성 <ctype.h> 대신 사용 
cfloat 부동 소수점 크기를 제한하고 <float.h> 대신 사용
climits 정수 크기를 제한하고 <limits.h> 대신 사용 
cmath 수학 함수로 <math.h> 대신 사용 
cstdio  표준 입출력 함수 <stdio.h> 대신 사용 
cstdlib  숫자와 텍스트 변환, 메모리할당, 난수 등의 유틸리티 <stdlib.h> 대신
cstring c 언어 형식 문자열 처리 함수 <string.h> 대신 사용
ctime 날짜와 시간 조작 함수 <time.h> 대신 사용 

헤더파일  내용 
iostream  표준 입 출력 함수 <iostream.h> 대신사용 
iomanip  데이터 스트림을 형식화하는 조작함수 <iomanip.h> 대신사용 

 헤더파일  내용
fastream  디스크 입 출력 함수 <fstream.h>대신사용 
 utility  표준 라이브러리 헤더 파일에서 사용하는 클래와 함수
 vector  표준 라이브러리 컨테이너용 벡터 클래스
list  표준 라이브러러리 컨테이너용 리스트 클래스
 iterator  표준 라이브러리 컨테이너용 데이터 접근하기 위한 반복 클래스
 algorithm  표준 라이브러리 컨테이너용 데이터 조작 알고리즘 클래스
 exception
stdexcept
 예외 처리하기 위한 클래스
 string  표준 라이브러리 string 클래스
 sstream  메모리와 문자열 간의 입 출력 함수
 locale  다국적 언어로 처리하는 함수
 limits  숫자 데이터 타입용 클래스
 typeinfo  실시간 타입 식별화용 클래스


일단 책에 소개되어있는 헤더파일은 위와 같다. 헤더파일을 전부 다외울 필요는 없다. 솔직히 나도 헤더파일은 자주쓰는것 이외는 기억을

안한다. 프로그래밍이라는건 해보면 알지만 나중에가서는 직접 함수를 만들고 하는것 보다는 찾아서 하는경우가 더 많다.

이유는 간단. 있는데 왜 굳이 노가다 뛰는가? 있는거 써서 버그 없이 잘 만들면 되는것이고 시간도 절약이 되기 때문이다 다만.

"아 이런 헤더가 있었고 이 안에는 뭔가 있었던것같아" 까지만해도 반쯤은 성공인것이다.