'C언어'에 해당되는 글 2건

  1. 2008/07/01 까먹고 있었거나 잊어 먹고 있었던 잡다하면서 나름 중요한 C 문법
  2. 2008/04/02 C...... (4)
2008/07/01 15:33

까먹고 있었거나 잊어 먹고 있었던 잡다하면서 나름 중요한 C 문법

아래 내용은 제가 까먹고 있었거나 생각하지도 못했었던 C 내용들입니다.
이것때문에 연산 결과가 자꾸 다르게 나와서 머리를 싸메고 있었던 적도 있었지요 ㅎㅎ
그냥 후기 삼아서 올려봅니다 ㅎㅎ


 

1. 변수형에 선정에 관하여

int형 연산이 빠른 이유


char c1 = 10, c2 = 20;

char c3 = c1 + c2;


위 과정에서 c1 + c2 연산 수행 시 data의 형 변환이 일어나게 되는데 c1과 c2가 가지고 있는 데이터가 int로 변환된 다음 다시 그 int 데이터가 char 형태의 c3에 대입 된다.

때문에 연산이 필요한 data의 경우에는 int형으로 사용하는 것이 형 변환이 일어나지 않으므로 빠른 연산을 보여 주게 되겠다.


일반적으로 int 형은 연산을 처리하는 processor의 성능에 따라 결정된다고 되어 있다.

(시스템 엔지니어를 위한 c/c++완벽 가이드, 박규환 저, 홍릉과학 출판사) 따라서 32bit의 윈도우 xp 급의 컴퓨터를 사용한다면 연산 하고자 하는 변수는 int로 선언하는 것이 좋을 것 같다.


실수의 경우에는 float는 오차가 너무 크므로 double을 사용하는 것이 좋다.


float a1=0;

double a2 =0;

int b;


for(b=0;b<100<b++)

{

        a1 += 0.1;

        a2 += 0.1;

}

printf("%f      %f     ", a1, a2);


위 프로그램과 a1과 a2의 값을 비교하여 보면 된다.



2. double 형 입력

scanf를 통해 입력 받을 때는 %lf를 사용하여야 한다.

printf에서 출력시에 %f를 사용하여도 되므로 까먹고 있었다.


3. 산술 연산 결과의 자료형은 피연산자의 자료형과 일치한다.


int a =1, b= 2;

float c = a/b;

printf("%f      ",c);

위 프로그램의 결과는 0.0 이다.

 

int 형끼리 연산한 결과는 int형이 되기 때문이다.

따라서 이럴 때 는 두 번째 줄에 연산결과를 강제로 형변환한 다음 c에 입력하는 형태로 하여야 한다.


float c = (float)a/b;


Trackback 0 Comment 0
2008/04/02 21:23

C......

C를 배우고 사용한지 꽤 오래 된거 같다 한4년 정도 되었으니
처음에는 정말 허접하기 이를데 없는데 차츰 프로그램도 깔끔해 져가고 쓸만한 프로그램도
한두번 짜지긴 했는데 아직 까지 모르는 부분이 너무 많은거 같다.
포인터나 배열, 구조체 까지 들어가니깐 책을보면 알겠는데 사용을 거의 안했었기 때문에 (특히 구조체...)아직 좀 많이 부족한 것같다.....
그런데 이거만 붙잡고 있어야 되나? 하는 생각을 가지고 있었는데
C++입문해보니 구조체 음......알아야 되는구나
 그리고 아직 까지는 컴퓨터 내부 구조가 머릿속에 정확히 들어 오지 않은것 같아서 정말 많이 부족하구나 하고 느끼게 된다.
술이나 마실까 ㅎ
이놈에 귀차니즘은 정말 끝이 없구나...

Trackback 0 Comment 4
  1. BlogIcon 1234 2008/04/03 01:04 address edit & del reply

    구조체. 편집기 좋은거 쓰면 멤버목록이 자동으로 나온다.
    이것으로 원더풀 프로그래밍 라이프를 즐길수 있(었으면 좋겠)다.

  2. BlogIcon wertherche 2008/04/03 12:33 address edit & del reply

    좋은게 있으면 좀 가르처 줘라 ㅋ

    • BlogIcon 1234 2008/04/05 20:38 address edit & del

      일단, 비졀스툐에 나오지 않나??
      SourceInsight도 괜찮은것 같아.

  3. BlogIcon Drifter 2008/04/03 13:21 address edit & del reply

    "코딩은 맨 마지막"

    요새 절실히 느끼고 있.... -_-;;