Libft 개념 정리

Worldi·2021년 12월 3일
0

42seoul

목록 보기
10/15

Makefile

relink 가 되지 않는 이유. 의존성 등. bonus도 리링크 되지 않도록 처리. makefile 의 개념, 각각의 요소들 처리 명령어

ft_atoi

문자열을 int 자료형으로 변경 시켜주는 것.

  • 주의 할 점 : 라피신에서 했던 것과는 달리, +, - 가 하나일 때만 고려.
  • LLONG_MIN long long 형식 변수의 최소값을 넘어서면 0을 반환하고, (-9,223,372,036,854,775,807 - 1)
  • LLONG_MAX long long 형식 변수의 최대값입니다. 9,223,372,036,854,775,807 을 넘어서면 -1 을 반환한다.

ft_memset

memset 으로 2바이트 이상의 자료형을 초기화 하면 ( 왜 unsigned char 로 형변환해서 넣었는지)
간단히 첨언하자면, 가장 직접적인 이유는 C언어 표준에서 unsigned char만을 명시하고 있기 때문입니다.C언어 표준 명세서의 '자료형의 표현' 절에 따르면 n바이트로 이루어진 모든 타입의 값은 unsigned char [n] 이라는 배열 형태의 메모리에 복사 가능헤야 합니다. 즉, unsigned char 만이 메모리 상의 바이트 복사를 표준 명세 상 보증합니다. Signed char는 명세 차원에서 이를 보증해주지 않습니다.

특정 아키텍처 cpu를 사용하는 환경에서는 unsigned char가 디폴트로서 그러한 환경에서는 char를 사용할시 unsigned char로 바뀌어 적용된다.( char를 사용하였을때 환경마다 다르게 동작할 수 있다.)그리고 이러한 오동작으로 인해 여러가지 에러가 발생할 수 있다.
2. 그렇기에 관례상 unsigned char를 사용하게끔 되어있고, C표준에도 그렇게 되어있어대부분의 str or mem 계열 함수에서는 unsigned char를 사용한다.

void 포인터

const 의 위치에 따른 상수 or 주소값의 상수

https://simplesolace.tistory.com/entry/c-%ED%95%AD%EC%83%81-%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94-const-%EC%9C%84%EC%B9%98%EC%97%90-%EB%94%B0%EB%A5%B8-%EC%93%B0%EC%9E%84%EC%83%88-%EC%B0%A8%EC%9D%B4-const-char-char-const

memcpy vs memmove

오버랩을 고려하는 것이 memmove 함수.

strlcat

리턴 값의 의미 , strlen(dst)>= dstsize 인 경우를 왜 체크

size_t 자료형 의미

static 함수

strcpy 와 memcpy 의 차이

각각의 함수들에 대해 널가드를 왜 했고 하지 않았는지

ft_strlen

에 널이 들어왔을 때 세그먼트 폴트가 뜬다.

ft_strlcpy

에 널이 들어왔을 때

ft_strmapi

에 빈값 들어왔을 때

calloc

calloc(0x8000000000000001, 2)
곱했을 때 overflow나는 경우와
calloc(0, 0) calloc(0, 1) calloc(1, 0)
곱했을 때 0이 되는 경우 두가지 해보세요

profile
https://worldi.tistory.com/ 로 블로그 이전합니다.

0개의 댓글