[C] miniLibx 란?
·
C & C++
더보기 harm-smits.github.io/42docs/libs/minilibx MiniLibX Find code examples, optimization tricks, and much more. harm-smits.github.io hysimok.github.io/posts/til/2020-10-09/ [TIL] 2020-10-09 Ray Tracing 과 MiniLibX 2020-10-09 (금) Today I Learned Ray Tracing 디스코드에 cub3d에 대해 좋은 정보들이 많았다. 우선 Ray casting 의 개념과 원리를 알 수 있는 강의를 보기 시작했다. https://courses.pikuma.com/courses/raycasting [Chapter1] R hysimok.gi..
[C] printf() 구현하기 (2) - format
·
42Seoul/Printf
format 다양한 자료형 변수를 문자열로 변환하는 방식을 지정해주는 형식 문자열(format string)인 문자열 변수를 받아들인다. 형식 지정자 설명 d,i 부호 있는 10진 정수 u 부호 없는 10진 정수 o 부호 없는 8진 정수 x 부호 없는 16진 정수(소문자) X 부호 없는 16진 정수(대문자) f 실수를 소수점으로 표기(소문자) F 실수를 소수점으로 표기(대문자) e 실수 지수 표기법 사용(소문자) E 실수 지수 표기법 사용(대문자) g %f와 %e 중에서 짧은 것을 사용(소문자) G %F와 %E 중에서 짧은 것을 사용(대문자) a 실수를 16진법으로 표기(소문자) A 실수를 16진법으로 표기(대문자) c 문자 s 문자열 p 포인터의 메모리 주소 n %n 부분에 int 포인터를 넣으면 지금..
[C] printf() 구현하기 (1) - introduction (가변 인자)
·
42Seoul/Printf
c언어를 공부하다보면 printf()가 함수임을 알게되고, 매개변수가 가변적으로 들어갈 수 있다는 것에 의문이 든다. printf()는 인자를 1개, 2개, 3개, ..... 몇 개를 넣어도 문제없이 돌아간다. 이것을 가능하게 해주는 것이 가변 인자라는 것이다. printf의 프로토타입을 보면 아래와 같다. int ft_printf(const char *, ...); 이 매개변수 중 ...이 가변 인자이다. 가변 인자(Variadic Arguments)란? 보통 함수에서 가변 인자를 정의할 때는 고정 매개변수가 한 개 이상 있어야 하며, 고정 매개변수 뒤에 ...을 붙여 매개변수의 개수가 정해지지 않았다는 표시를 해준다. 단, ... 뒤에는 다른 매개변수를 지정할 수 없다. 가변인자에 관련된 변수는 #i..
[C] get_next_line 구현하기 (1) - get next line 이란?
·
42Seoul/Get Next Line
Get Next Line 주어진 file discripter에 해당하는 file로부터 라인단위(개행 문자로 구분)로 글을 읽어온다. 함수를 한 번 호출할 때 마다, 한 줄씩 글을 읽는다. 읽기 성공하면 1, EOF(End of File)에 다다르면 0, error 발생 시 -1 반환 file discripter wonillism.tistory.com/166 [C] file discriptor (파일 디스크립터) 파일 디스크립터란? 특정한 파일에 접근하기 위한 추상적인 키이다. 일반적으로 POSIX 운영체제에 쓰인다. POSIX에서 파일 디스크립터는 정수이다. 표준 POSIX 파일 서술자 0 : 표준 입력(stdin) 1 : 표�� wonillism.tistory.com read() size_t read(..
[C] 나만의 라이브러리 - substr, strjoin, strtrim, itoa
·
42Seoul/Libft
1. substr 함수 형태 char *my_substr(char const *s, unsigned int start, size_t len); 매개 변수 원본 문자열 문자열 s에 있는 하위 문자열의 시작점 하위 문자열의 길이 반환 값 잘라낸 문자열, 실패시 NULL 반환 설명 malloc(3)를 사용하여 할당하고 문자열 's'에서 하위 문자열을 반환. 하위 문자열은 인덱스 'start'에서 시작되며 최대 크기 'len' 소스 코드 #include "libmy.h" char *my_substr(char const *s, unsigned int start, size_t len) { size_t i; size_t len_s; char *ret; if (!s) retu..
[C] 나만의 라이브러리 - split 함수 구현
·
42Seoul/Libft
split 함수 형태 char **my_split(char const *s, char c); 매개 변수 분할할 문자열 구분 기호 문자 반환 값 분할한 새 문자열 배열, 할당 실패시 NULL 반환 설명 malloc(3)로 할당하고 문자 'c'를 구분 기호로 사용하여 's'를 분할하여 얻은 문자열 배열을 반환하십시오. 배열을 NULL 포인터로 종료해야 함 소스 코드 #include "libmy.h" static int get_row(char const *s, char c) { size_t i; size_t ret; i = 0; ret = 0; while (s[i]) { if (s[i] != c && (s[i + 1] == c || !s[i + 1])) ret++; i++; } return (ret); } s..
[C] 나만의 라이브러리 - memset, bzero, memcpy, memccpy, memmove, memchr, memcmp
·
42Seoul/Libft
1. memset void *my_memset(void *s, int c, size_t n); s위치부터 n바이트 만큼 c값으로 초기화하는 함수 void *my_memset(void *s, int c, size_t n) { unsigned char *ptr; ptr = s; while (n--) *ptr++ = (unsigned char)c; return (s); } 메모리의 1바이트씩 체크와 역참조가 불가능한 void 포인터를 unsigned char포인터로 형변환 s의 시작점을 ptr받고 n개 만큼 반복하며 값을 넣어줌 2. bzero void my_bzero(void *s, size_t n); s위치부터 n바이트 만큼 0으로 초기화하는 함수 void my_bzero(void *s, size_t n)..
[C] memcpy와 memmove의 차이
·
C & C++
memcpy와 memmove 두 함수는 모두 특정 메모리를 다른 메모리로 복사할 때 사용된다. 그렇다면 두 함수의 차이는 뭘까? memcpy void *memcpy(void *dest, void *src, size_t size); dest(destination) : 복사되는 메모리의 주소 src(source) : 복사하는 메모리의 주소 size : 복사할 크기 return : 성공시 dest, 실패시 NULL memmove void *memmove(void *dest, void *src, size_t size); dest(destination) : 복사되는 메모리의 주소 src(source) : 복사하는 메모리의 주소 size : 복사할 크기 return : 성공시 dest, 실패시 NULL 위와 같이 ..
WONILLISM
'c' 태그의 글 목록