IT

'소프트웨어/C언어'에 해당되는 글 24건

  1. 2011.04.28 자료형-2
  2. 2011.04.27 자료형-1
  3. 2011.04.27 2011.04.27 피보나치 수열의 합 계산 프로그램
  4. 2011.04.25 컴파일 과정

자료형-2

2011. 4. 28. 17:38 : 소프트웨어/C언어

Int

signed int

unsigned int

short int

unsigned short int

각 컴퓨터마다 int,short,long형에 할당된 바이트의 크기가 다르다.

Char short int long

 

Short 형은 int형의 절반만 이용

Unsigned 자료형이 속도가 제일 빠르다

32bit 컴퓨터 -> int형이 제일 빠르다

 

Sizeof() => 연산자이다. (함수가 아님)

 

43    67L    57u    67U    89u    89UL

Long형 상수의 경우 숫자 끝에 l이나L을 붙인다.

unsigned long int 형의 경우 ul 이나 UL을 붙인다.

실수형 상수의 경우는 숫자 끝에 F를 붙이면 float형, L을 붙이면 long double형으로 정해진다.

 

%d : 10진수(signed int 정수)

%x : 16진수

%o:8진수

%f : float

%lf: long double

%u: unsigned int (양수)

%c: 문자 출력

%s: 문자열 출력

 

문자 상수

Char ch = 'a'

아스키코드표의 a의 숫자값이 ch변수에 저장

 

문자열

Char ch[8]="This is";

T

h

i

s

 

i

s

\n

84

104

105

115

32

105

115

0

위와 같은 형태로 저장된다.

'소프트웨어 > C언어' 카테고리의 다른 글

문자 입출력  (0) 2011.05.03
변수와 메모리  (0) 2011.04.29
자료형-1  (0) 2011.04.27
2011.04.27 피보나치 수열의 합 계산 프로그램  (0) 2011.04.27
컴파일 과정  (0) 2011.04.25
Posted by sinpk

자료형-1

2011. 4. 27. 17:39 : 소프트웨어/C언어

Bit 2진수 한자리
Nilbble = 4bit
Byte = 8biit
Word = 32bit = 4Byte

128

64

32

16

8

4

2

1

7bit

6bit

5bit

4bit

3bit

2bit

1bit

0bit


1010

1100

0110

A

C

6

메모리 공간은 주소를 가지고 있다.
메모리는 Byte단위로 접근
Java는 메모리 접근이 안되고, 참조만 됨

0

1

1

1

1

1

1

1

정수의 최대값 +127

1

0

0

0

0

0

0

0

정수의 최소값 -128

 #include <stdio.h>
Int main()
{
    char cNum;
// unsigned char cNum; 
    cNum = 127; 
    printf("%d\n",cNum); 
    cNum = 128 ;
    printf("%d\n",cNum);
    return 0;
}
 
unsigned 형으로 지정하지 않으면은 -128로 출력된다

'소프트웨어 > C언어' 카테고리의 다른 글

문자 입출력  (0) 2011.05.03
변수와 메모리  (0) 2011.04.29
자료형-2  (0) 2011.04.28
2011.04.27 피보나치 수열의 합 계산 프로그램  (0) 2011.04.27
컴파일 과정  (0) 2011.04.25
Posted by sinpk

예제) 피보나치 수열

 

피보나치 수열이란 1, 1, 2, 3, 5, 8, … 과 같이 앞의 연속된 2개 항을 합한 수열이다.

피보나치 수열의 일반식 : an+2 = an + an+1

 

입력 받은 항 개수만큼의 피보나치 수열의 합을 구하여라.

(항 개수를 9로 입력받으면 합 Sum = 1+1+2+3+5+8+13+21+34)


#include <stdio.h>

 

int main()

{

         int Num1 = 0, Num2 = 1, Val;

         int Sum = 1, pSum = 0;

         int i=0;

 

         printf("==================================\n");

         printf(" 2011.04.27 KJ 피보나치 수열의 합 \n");

         printf("==================================\n");

 

         //항의 개수 입력

         printf("항의 개수 입력 : ");

         scanf("%d",&Val);

 

         for(i; i<Val; i++)

         {

                  pSum += Sum; //피보나치 항의 합

                  Sum = Num1 + Num2; //피보나치 다음 항 계산

                  Num1 = Num2;

                  Num2 = Sum;

 

         }       

         //항의 합 출력

         printf("\n피보나치 수열 %d개 항의 합은 %d", Val, pSum);

 

         return 0;

}


출력결과

'소프트웨어 > C언어' 카테고리의 다른 글

문자 입출력  (0) 2011.05.03
변수와 메모리  (0) 2011.04.29
자료형-2  (0) 2011.04.28
자료형-1  (0) 2011.04.27
컴파일 과정  (0) 2011.04.25
Posted by sinpk

소스( .c) → 전처리 (.i) → 컴파일(.s) → 어셈블러(.o or .obj) → 링크/링킹 → 실행파일 (.exe)
                   Preprocessing → Compile → Assembler → Link
※ 밑줄 부분은 컴파일 과정에서 중간 파일이 생겼다가 지워진다.

중간 파일을 삭제하지 않고 보여주는 방법.
# gcc -v --save-temps -o test2 first.c

-v → 컴파일 과정을 화면에 출력한다.
--save-temps → 컴파일 과정에서 생성되는 중간 파일인 전처리 파일(*.i)과 어셈블리 파일(*.s)를 지우지 않고 현재 디렉토리에 저장한다. 컴파일 과정의 에러를 분석할 때 사용

cl /P /FA main.c

1. 전처리 (abc.i 파일 생성)
#define, #ifdef, #include,#pragma 등, 전처리기 사용

$cpp abc.c abc.i

2. 컴파일 (abc.s 어셈블러 파일 생성)
c 컴파일러사용

$/usr/lib/gcc/i486-linux-gnu/4.0.2/cc1 abc.i

3. 목적코드 생성( abc.o 오브젝트 파일 생성)
어셈블러를 사용하여 목적파일 생성

$as -V -Qy -o abc.o abc.s

4. 링크(실행파일 생성)
링커를 사용-Collect2
두 개 이상의 목적 프로그램을 합쳐서 실행 가능한 한 개의 프로그램으로 만드는 작업

'소프트웨어 > C언어' 카테고리의 다른 글

문자 입출력  (0) 2011.05.03
변수와 메모리  (0) 2011.04.29
자료형-2  (0) 2011.04.28
자료형-1  (0) 2011.04.27
2011.04.27 피보나치 수열의 합 계산 프로그램  (0) 2011.04.27
Posted by sinpk