본문 바로가기

전체 글76

[C언어] 내장함수 비교 - strchr, strrchr / strstr, strnstr / strcmp, strncmp 에 있는 문자열 관련 함수를 정리한다. 레퍼런스는 man 가이드다. strchr와 strrchr 비교 RETURN 항목에서 말하는 'character'는 byte를 의미한다. PROTOTYPE #include char *strchr(const char *s, int c); #include char *strrchr(const char *s, int c); NAME locate character in string DESCRIPTION - The strchr() function locates the first occurrence of c (converted to a char) in the string pointed to by s. - The terminating null character is consider.. 2020. 10. 8.
[C언어] 데이터 타입 비교 - int, unsigned int, size_t int 32bit 컴퓨터 기준으로 정수가 32bit (4byte) 크기라고 가정한다면 int 자료형은 2의 32제곱의 값(4,294,967,296)을 표현할 수 있다. 음수, 0, 양수를 포함하여 최소 -2,147,483,648에서 최대 2,147,483,647까지 표현하는 것이다. ex. 쥬니어네이버 동물농장 포인트는 21억이 최대였다. ex. 마인크래프트 레벨은 21억이 최대다. unsigned int unsigned int 자료형은 int의 범위를 양의 정수 범위로만 사용한 자료형이다. 따라서 양의 표현이 2배 늘어난다. 최소 0부터 최대 4,294,967,295까지 표현한다. ex. 바람의 나라 최대 경험치는 42.9억이다. size_t size_t는 a.k.a. 'long unsigned int.. 2020. 10. 7.
[C언어] 내장함수 비교 - strdup, malloc, calloc, free 에 정의된 strdup 함수와, 에 정의되어 있는 동적 메모리(dynamic memory) 할당 및 해제 함수 몇 가지를 정리한다. 리퍼런스는 man 가이드다. strdup strdup 함수는 동적 메모리를 할당하여 문자열을 복사하므로 malloc 함수를 사용한다. PROTOTYPE #include void *strdup(const char *s1); NAME duplicate a string (save a copy of a string) DESCRIPTION - The strdup() function allocates sufficient memory for a copy of the string s1, does the copy, and returns a pointer to it. - The pointer.. 2020. 10. 7.
아스키코드(ASCII Code) - 컴퓨터의 문자 처리 원리 컴퓨터가 이해하는 언어는 0과 1(1bit)이다. 2진수로 데이터를 처리한다.컴퓨터는 전기신호를 받아들이므로 전기의 OFF, ON 두 가지 상태(0과 1)로 모든 걸 표현하기 때문이다.0과 1의 두 가지 상태를 나타내는 단위를 bit라고 한다. 더보기전자식 컴퓨터가 나오기 전에 기계식 컴퓨터가 있었으나 결국 속도 때문에 전자식 컴퓨터를 사용한다.컴퓨터는 '전기가 흐른다' / '흐르지 않는다' 이 두 가지 상태만 가지므로 2진법을 사용한다.인간이 10진법을 사용하는 이유도 간단하게 손가락이 10개이니 셈하기 용이하기 위해서다. 그러나 1bit만으로는 표현할 수 있는 게 0, 1 단 두 개뿐이니, 더 큰 수를 표현하기 위해 8개의 bit를 묶어서 1byte를 사용한다. 컴퓨터가 데이터를 저장하는 최소 단위가.. 2020. 10. 7.
[C언어] NULL, 0, NUL, '\0', undefined의 차이 malloc(), bzero() 등의 C언어 내장함수를 공부하면서 NULL, 0, NUL, '\0'을 접하게 된다. 공통점과 차이점을 정확하게 정리하고자 한다. 우선 NULL과 NUL은 구분되며, 비교항목을 NULL, 0 과 NUL, '\0' 과 undefined 로 나눌 수 있다. NULL, 0 비교 NULL은 널 포인터로서, (void *)0을 가리킨다. NULL 매크로는 , 등 여러 헤더파일에서 이미 정의돼있다. C언어에서 pointer와 정수는 서로 형 변환될 수 있는데, 두 데이터 타입 모두 4byte다. Null pointer는 정수 0으로 변환될 수 있고, 정수 0은 Null pointer로 변환될 수 있다. 즉, Null pointer는 메모리 주소 0을 가르키는 pointer라는 뜻이다... 2020. 10. 6.