string
관련 함수에서는 마지막에 '\0'
꼭 넣어준다.unsigned char
는 부호비트가 없기 때문에 모든 bit
를 투명하게 볼 수 있다.unsigned char
를 사용한다.unsigned int
대신 size_t
를 사용한다.const
로 선언된 변수는 값을 변경할 수 없고 변경시 컴파일 에러가 뜬다.*restrict
는 특정 메모리 영역에 접근 할 수 있는 포인터가 단 하나임을 보장하는 키워드이다.void 포인터
는 자료형이 정해지지 않은 특성 때문에 어떤 자료형으로 된 포인터든 모두 저장할 수 있다.static
으로 선언한다.static
으로 선언한 함수는 해당 소스파일에서만 사용이 가능하므로 다른 파일의 함수이름과 겹칠 일을 방지한다.free
를 해준 다음, 포인터에 NULL
을 할당한다.typedef struct s_list
{
void *content;
struct s_list *next;
} t_list;
content
: 요소에 포함된 데이터. void *
를 통해 어떠한 자료형의 값도 담을 수 있다.
next
: 다음 요소의 주소값. 만약 해당 요소가 마지막 요소라면, NULL
을 가리킨다.
t_list
: 구조체 별칭.
!lst
: 리스트 자체가 존재하지 않음을 의미한다.!(*lst)
: lst의 첫번째 주소를 의미 리스트 내에 노드가 존재하지 않다는 뜻이다.