본문 바로가기

뉴스

C언어 더블정의, 버퍼링 - 그리고 null 포인트

1. C언어 더블정의, 버퍼링 - 그리고 null 포인트

 

1) C언어 더블정의

128비트 부동데이터 유형으로 float와 double 변수를 작성하는 것이 일반적이라고 할 수 있습니다. 당신의 프로그래밍언어 수준은 얼마나 됩니까? double은 기본 데이터 형식으로서 소수점이 있는 숫자를 정의하는데 사용되는 변수입니다. 이 사실을 알고 있지만 사용을 할 수 있습니까? 여러(C / C++ / C#)의 언어에서 프로그래밍언어에서 이것 double형식은 많이 사용됩니다. 특히 이것은 소수점 앞뒤 포함 총 15자리까지 포함할 수 있으므로 우리가 살아가는 현실에서는 그다지 필요없을 수 있죠. 하지만 컴퓨터와 소통하는 언어인 프로그래밍언어에서는 이것도 적은 편이라고 할 수 있습니다. 소수점 100자리도 파고들 수 있는 컴퓨터 특성상 말이죠. 이것의 용도는 float유형이 부동 소수점 숫자를 처리할 때보다 더 빠르게 처리하기 위해 double변수가 사용됩니다. 더 많은 소수점이 필요한 작업에서는 float의 이점을 살리는 것이 좋습니다.

7자리 숫자를 수용할 수 있고 32비트 부동 소수점 데이터형식인 float는 정밀도와 범위가 다릅니다. double는 64비트 부동 소수점 데이터 형식으로 float보다 많은 범위를 표현할 수 있습니다. float < double

특히 정수만을 사용한다면 int 변수를 사용하면 더욱 효율적이고 빠른 산술 처리가 가능합니다.

 

2) C언어 버퍼링

25... 50... 75%.... 점차적으로 데이터를 읽고 쓰는 것을 데이터으이 버퍼라고 칭한다. 이것은 입력과 출력속도가 같은 경우가 가장 이상적이라고 판단될 수 있다. 하지만 캐시는 버퍼 역할도 하지만 느린 저장소에 엑세스할 필요성을 줄이기 위해 여러번 예상되는 데이터를 저장하며 일어나는 현상이다. 프로그래밍에서 데이터 버퍼는 사용하려는 데이터가 처리되기전에 소프트웨어적으로 버퍼에 배치되는 것을 말한다. 이러한 버퍼는 속도에 차이가 있다면 사용자로 하여금 답답함을 초래할 수도 있지만 컴퓨터 프로그래밍 버퍼는 생각보다 많은 RAM을 사용한다. 그렇기 때문에 일반적으로 우리가 하는 웹서핑이나 동영상 시청, 게임등은 별로 효율적인 사용이 아니라고 할 수 있다.

char* buffer = new char[length];

#버퍼에 할당된 메모리를 확보하는 것은 다음과 같은 명령을 할 수 있다.

delete[] buffer;

버퍼는 메모리들 사이의 불균형을 없애고 균형을 찾아서 가장 이상적인 속도로 맞추는 것이 관건이다. 파일이 열리고 데이터가 전송되고 파일이 닫히기 까지 많은 버퍼가 캐쉬를 소모하게 될 것이기 때문이다.

 

3) 마지막 null point

컴퓨터 프로그래밍에서 null은 값이자 포인터라고 할 수 있다. 기본적으로 제공되는 값은 0인데 C언어에서 문자열을 종료하는데 사용되는 문자 0과 동일하다. 0은 숫자와 문자에서 의미가 모두 없다고 할 수 있다. 그렇기에 Null은 특수한 상황이 아니라면 0과 동일하게 사용할 수 있다.

 

Null = 0;

 

널 포인트란 우리가 C언어에서 메모리를 사용할 때 보유해야하는 변수라고 할 수 있다. 이런 null point는 충돌을 방지하면 어떤 포함된 메인 디렉토리에 접근할 때 매우 유용할 수 있다. null이 없다면 충돌이 일어날 수 있으며 이것을 '무'로 돌리는데 필요한 것이 null pointer라고 할 수 있다. 즉 0으로 쓰면 이것은 아무 의미를 지니지 않기 때문이다. 개체가 없다는 것을 표현하는 것과 같다는 의미이다.

 

#include

int main()

{

int *ptr = NULL;

printf("The value of ptr is %u", ptr);

return 0;

}

 

macro void*

 

null = 0;