달력

11

« 2019/11 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30


 

calloc( )함수를 이용한 동적 메모리 할당

메모리를 할당하면서 초기화 경우 calloc()함수 사용

종류

함수

반환

메모리

할당 함수

void* calloc(size_t num, size_t size);

 

성공: 할당된 메모리의 시작 주소 반환

실패: NULL 반환

 

 

 

 

calloc( ) 함수 vs malloc( ) 함수

동일한 함수 이며 입력 인자의 개수만 차이가 있습니다.

calloc( )

malloc( )

할당된 공간의 값을 모두 0으로 초기화합니다.

할당할 메모리 크기를 바이트 단위로 전달받고, 할당된 공간의 값들은 초기화하지 않습니다.

//함수의 입력 인자 2

int* p1 = calloc(4, 4);

//함수의 입력 인자 1

int* p2 = malloc(16);

//int형을 배열처럼 5개씩 메모리 할당

(int *)calloc( 5, sizeof(int) );

(int *)calloc( 1, 5*sizeof(int) );

//int형을 배열처럼 5개씩 메모리 할당

(int *)malloc( 5*sizeof(int) );

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

동적 바인딩 vs 정적 바인딩

구분

정적 바인딩(Static Binding)

동적 바인딩(Dynamic Binding)

지연 바인딩(Late Binding)

정의

컴파일 단계에서 모든 바인딩이 완료되는

반대로 바인딩이 실행 까지 연기되고 실행 시간에 실제 호출되는 함수를 결정하는

시점

프로그램 실행 시간 전에 속성을 연결하는 방식

프로그램 실행 시간에 속성을 연결하는 방식

대상

일반함수

가상함수

속도

빠르다

느리다

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

C 언어 특징

·       저수준(low-level)

·       고이식성 언어로 설계

·       함수 중심적인 언어, 절차지향적인 언어

·       다른 언어를 배우기 위해

·       시스템 프로그래밍 가능(하드웨어를 제어/접근하는 프로그램)

·       C 언어는 기계어와 가장 근접한 언어인 만큼 C 언어에 있어 컴퓨터/시스템 구조 지식은 필수

·       임베디드 프로그램, 로봇제어

·       자료유형에 대해 엄격한 언어가 아닙니다.

 

 

 

 

C언어 계열(C, C++, C#) 장단점

구분

설명

장점

·       어셈블리어 같은 저급 언어와 유사한 기능을 제공

·       구조적 프로그래밍을 통해 프로그램을 읽기 쉽고 작성하기에도 쉬운 언어

·       프로그램의 이식성과 융통성이 뛰어난 언어

·       기존에 작성한 C언어 코드를 거의 대부분을 수정없이 C++ 언어로 확장할수 있어 다양한 운영체제에서 사용가능

 

단점

·       C언어는 객체 지향 개념이 없습니다.

·       C++언어는 방대한 기능 제공하고 복잡함으로 인해 안정성이 떨어지며 C언어와의 호환성을 강조하다보니 새로운 기능을 추가하는데 제한이 있습니다.

·       C#언어는 JAVA언어에 비해 활성화가 되지 못해 저변확대가 부족합니다.

 

 

 

 

 

 

C vs JAVA

C

함수 중심적인 언어, 절차지향적인 언어입니다.

C++

C#

JAVA

객체 지향 언어입니다.

 

 


Posted by codedragon codedragon

댓글을 달아 주세요

2019.05.29 09:40

C Development/C/C++

   

C

·       미국 AT&T사의 (Bell) 연구소에서 만들었습니다.

·       데니스리치(Dennis Ritchie)

·       프로그램의 이식성을 높이기 위해 개발되었습니다.

   

   

   

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

정적 바인딩(Static Binding) vs 동적 바인딩(Dynamic Binding)  (0) 2019.07.08
C 언어 특징, C언어 계열(C, C++, C#) 장단점, C vs JAVA  (0) 2019.06.06
C  (0) 2019.05.29
반복문  (0) 2019.05.28
비트 연산자(bitwise operator)  (0) 2019.05.28
비트(Bit)  (0) 2019.05.27
Posted by codedragon codedragon

댓글을 달아 주세요

2019.05.28 09:24

반복문 Development/C/C++


 

반복문

·       조건이 만족될 어떤 행동을 반복적으로 수행하는 문장

·       특정 부분을 조건이 만족할 때까지 실행하도록 하는 명령문

·       반복할 문장을 원하는 만큼 반복

·       반복횟수 검증하여 정확한 로직 구현 여부 확인해야 합니다.

·       FORTRAN do문이 시초가 되었으며, 최근에는 while문과 for문이 주로 사용됩니다.

 

 

 


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

C 언어 특징, C언어 계열(C, C++, C#) 장단점, C vs JAVA  (0) 2019.06.06
C  (0) 2019.05.29
반복문  (0) 2019.05.28
비트 연산자(bitwise operator)  (0) 2019.05.28
비트(Bit)  (0) 2019.05.27
바이트(byte)  (0) 2019.05.27
Posted by codedragon codedragon

댓글을 달아 주세요


 

비트 연산자(bitwise operator)

·       Bit Operator

·       피연산자 연산의 대상이 되는 값들을 내부적으로 bit(비트)단위 변경한 연산을 수행하는 연산자입니다.

·       논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다.

·       0 1 자리에 대한 연산을 수행하며, 0 또는 1 결괏값을 가진다.

·       하드웨어와 관련된 처리를 쉽게 해줍니다.

·       메모리 공간을 줄여서 성능을 높여 있습니다.

 

 

 

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

C  (0) 2019.05.29
반복문  (0) 2019.05.28
비트 연산자(bitwise operator)  (0) 2019.05.28
비트(Bit)  (0) 2019.05.27
바이트(byte)  (0) 2019.05.27
fread( ) 함수와 fwrite( ) 함수 - 바이너리 파일 입출력  (0) 2019.05.26
Posted by codedragon codedragon

댓글을 달아 주세요

2019.05.27 09:14

비트(Bit) Development/C/C++


 

비트(Bit)

·       Binary Digit

·       컴퓨터를 이해하기 위한 가장 기본적인 단위

·       컴퓨터는 모든 정보를 0 1 표현

·       비트는 2진수 하나(0 또는 1) 저장 있는 최소 메모리 공간

·       0 1로만 구성된 이진법(ex. 101001) 이용하며, 컴퓨터 이용 흔히 접할 있는 1바이트(Byte) 8비트(Bit) 의미합니다.

·       1바이트(byte) 8비트(bit)

 

 

 

1bit

2bit

3bit

4bit

5bit

6bit

7bit

8bit

9bit

nbit

21 =  2

22 = 4

23 =8

24 = 16

25 =32

26 = 64

27 = 128

28 = 256

29 = 512

2n =n

 


 


https://en.wikipedia.org/wiki/Bit

http://bit.ly/2CjVur0

 


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

반복문  (0) 2019.05.28
비트 연산자(bitwise operator)  (0) 2019.05.28
비트(Bit)  (0) 2019.05.27
바이트(byte)  (0) 2019.05.27
fread( ) 함수와 fwrite( ) 함수 - 바이너리 파일 입출력  (0) 2019.05.26
feof( ) 함수 - 파일의 끝을 확인  (0) 2019.05.17
Posted by codedragon codedragon

댓글을 달아 주세요

   

  

 

바이트(byte)

·       컴퓨터가 데이터를 다루는 기본 단위

·       1바이트는 8비트로 취급

·       1바이트는 8개의 0 1 구성된 데이터 덩어리

 

2진수

10진수

0001 0001

17

 


 

 

 

 

   




 

 

비트(Bit) 바이트(Byte) 관계

구분

설명

바이트

1Byte(B) = 8bit

1bit = 0.125B

킬로바이트

1kilobyte(KB) = 8,192bit

1bit = 0.000122KB

메가바이트

1megabyte(MB) = 8,388,608bit

1bit = 1.1921e-7MB

기가바이트

1Gigabyte(GB) = 8.5899e + 9bit

1bit = 1.1642e-10GB

테라바이트

1Terabyte(TB) = 8.7961e + 12bit

1bit = 1.1369e-13TB

페타바이트

1Petabyte(PB) = 9.0072e + 15bit

1bit = 1.1102e-16PB

엑사바이트

1Exabyte(EB) = 9.2234e + 18bit

1bit = 1.0842e-19EB

 

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

fwrite()함수

바이너리 파일 출력을 지원하는 함수

   

   

함수 원형

함수의 원형

기능

헤더파일

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);

  • buffer에 저장된 데이터를 파일에 출력
  • 호출 성공: count(반복 횟수) 반환
  • 호출 실패: count보다 작은 값 반환

       

      

stdio.h

   

매개변수 설명

buffer

출력 데이터를 저장한 버퍼를 가리키는 포인터

size

한번에 출력할 데이터의 바이트 크기

count

반복 횟수

stream

파일 출력 스트림

   

   

fread()함수

바이너리 파일 입력을 지원하는 함수

함수의 원형

기능

헤더파일

size_t fread(void* buffer, size_t size, size_t count, FILE* stream);

  • 파일로 부터 바이너리 데이터를 받아 buffer로 입력
  • 호출 성공: count(반복 횟수) 반환
  • 호출 실패: count보다 작은 값 반환

stdio.h

   

   

매개변수 설명

buffer

  • 파일로 부터 입력 받은 데이터를 저장하는 버퍼를 가리키는 포인터
  • buffer가 void*(void형 포인터)인 이유는 어떤 유형의 buffer를 사용할지 자유롭게 선택

size

  • 한번에 입력받을 데이터의 바이트 크기

count

  • 입력 회수

stream

  • 파일 입력 스트림

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

feof( ) 함수를 사용하는 이유

   

파일의 끝을 확인하는 다양한 표현

함수

파일의 끝에서 반환하는 값

fgetc( )

EOF(-1)

fgets( )

NULL(0)

fscanf( )

EOF(-1)

   

파일 끝에서 반환하는 값 사용시 단점 및 해결

단점

파일 끝에서 반환되는 값을 일일이 기억하는 것 불편

해결방법

feof()함수를 사용

   

   

파일의 끝을 검사하는 feof()함수

함수 원형

설명

헤더파일

int feof(FILE* stream);

  • 파일의 끝에 도달했는지 아닌지를 검사
  • 파일의 끝에 도달 : 0이 아닌 값 반환
  • 파일의 끝에 도달하지 못한 경우 : 0 반환

stdio.h

   

Posted by codedragon codedragon

댓글을 달아 주세요