Libft

Hisop·2022년 10월 13일
0

42_subject

목록 보기
1/1

https://github.com/Hi-sop/libft

42서울 본과정에서 처음으로 받은 과제로 나만의 Lib파일을 만들어보는 과제였다.
ft는 42의 약어로 앞으로 구현하는 함수나 과제들에 심심하면 붙어있을 예정.

선발과정인 피씬때도 느꼈지만 코드 규약이 많다. (출력에 printf 사용금지 등)
낮은 레벨부터 직접 구현해보고 파악해보라는 의도로 느껴졌다.
아무튼 일반적으로 라이브러리에 포함되어 쉽게 가져다 쓰던 함수들을 하나하나 구현하여 나만의 라이브러리를 구성해보라는 과제였다.


Makefile

Makefile을 이용하여 정적 라이브러리를 빌드하는것도 요구사항에 포함되어있었다.
쉘 스크립트와 비슷한 느낌으로 이해하고 넘어갔다.
큰 차이점이라면 매번 모든 내용을 리빌드하지 않아도 된다는 점.
https://modoocode.com/311


메모리 할당 및 초기화 등

bzero, calloc, memset 등이 해당된다.
이 함수들을 구현하며 malloc을 이용해 동적할당하고 free하는 과정을 배울 수 있었다.

atoi, itoa

ascii를 int로, int를 ascii로 바꾸는 함수.
구현엔 크게 어려움이 없었으나 오버플로우를 어떻게 핸들링 해야할지 결정하는게 힘들었다.
고민하다 long long max의 범위까지만 처리할 수 있도록 구현했다.

String

str을 편집할 수 있는 strdup, strjoin, strlcat, strlcpy 등을 구현했다.
인덱스 접근을 통한 문자열 편집을 충분히 연습할 수 있었다.

Split

이번 과제에서 제일 난이도 있는 함수였다.
받은 문자열을 separator 기준으로 나누어 리턴하는 함수로 위에서 사용했던 할당, 문자열, 포인터 개념이 골고루 사용됐다. 이중포인터 개념에 대해서 확실히 이해하고 넘어갈 수 있었다.

lst

이번 과제 보너스 파트에 해당하는 함수들로 연결리스트에 사용될 함수들이다. add, del, new, size 등을 구현했고 map은 매개변수로 함수를 받는 방법을 배워서 기억에 남는다.

profile
42seoul - C, C++ / YagomAcademy - Swift

0개의 댓글