Dia Egg - Shugo Chara
728x90
반응형

분류 전체보기 144

memcpy 함수의 구현

memcpy 함수 string.h 헤더 파일에 들어있는 함수로 memory + copy가 합쳐진 그대로 메모리의 값을 복사하는 기능을 가진 함수이다. 원형은 void *memcpy(void *restrict dst, const void *restrict src, size_t n)을 따른다. 첫번째 인자가 복사받을 메모리를 가리키는 포인터, 두번째 인자가 복사할 메모리를 가리키는 포인터, 세번째가 복사할 데이터값의 길이(byte단위)이다. 주의 할 점은 복사 할 메모리 블록과 복사받을 메모리 블록이 겹쳐있는 경우에는 사용하지 못한다고 한다. return값은 dst의 원래 값을 반환한다. memcpy 함수의 구현 void*ft_memcpy(void *dst, const void *src, size_t n) ..

C 2023.10.13

restrict란?

memcpy함수를 알아보다가 restrict라는 것을 마주쳐, 한번 탐구해보고자 한다. restrict란? restrict란 포인터 변수에 사용 가능한 키워드이다. c99이후의 버전에서 사용이 가능하다. 풀어서 설명하자면 특정메모리를 사용하는 포인터가 단 하나(restrict로 표기된 포인터들에 대해서는 다른 restrict면수들과 같은 공간을 가리키지 않는다고)임을 뜻하게 하므로서 메모리가 중첩되어일어나는 메모리 손실이나 오류가 일어나는 것을 막아내고자한 의도라고 볼 수 있다. 그럼 restrict를 붙이기만 하면 메모리 중첩을 막아주는 것일까? 그것은 아니다. restrict의 궁극적인 목표는 포인터들이 다른 공간을 가리키고 있는 지를 연산해주는 과정을 생략하여 더 뻐른 연산을 도와주는 것에 있기 때..

C 2023.10.13

bzero 함수의 구현

bzero 함수와 memset함수의 차이 bzero는 0으로 채우는 것이고 memset함수는 원하는 value를 지정하여 채울 수 있는것이다. 사실상 bzero(str, 5) == memset(str, 0, 5)로 보아도 지장이 없다. 그러나 bzero는 c언아 비표준이며 사용중단된 함수이므로 사용하지 않는 것을 권장한다. bzero 함수 string.h 라는 헤더 파일에 정의 되어있는 함수이다. 첫번째 인수로 받은 문자열에 두번째 인수로 받은 길이 만큼 0으로 초기화 시켜주는 함수이다. 원형은 void bzero(void *s, size_t n)이다. 0으로 채운다는 것은 문자 '0'이 아닌 숫자 0, 즉 아스키코드 상으로는 \0으로 채운다는 뜻이므로 0을 대입해주어야한다. 위의 memset함수와 같다..

C 2023.10.13

memset 함수의 구현

memset 함수의 구현 원형은 void *memset(void *b, int c, size_t len); memory.h 또는 string.h 모두 이 함수를 포함하고 있다. 첫번째 인자는 세팅하고자 하는 메모리의 시작 주소, 두번째 인자는 메모리에 세팅하고자 하는 값, 세번째 인자는 size_t 로 길이를 나타낸다. 반환값은 성공하면 첫번째 인자를 반환하고 실패하면 null을 반환한다. #include void *ft_memset(void *ptr, int value, size_t num) { size_ti; unsigned char *temp; i = 0; temp = (unsigned char *)ptr; while (i < num) { temp[i] = (unsigned char)value; i..

C 2023.10.13

char 와 unsigned char 의 차이

char 와 unsigned char가 나타낼 수 있는 범위 char 형과 unsigned char 형은 모두 1byte(8bits)를 따른다. unsigned int형의 구조와 같이 부호를 표현하지 않아도 되는 unsigned char형은 그대로 8개의 비트를 통해 2의 8승, 즉 0~255까지의 범위를 나타낼 수 있고. 부호를 나타내야하는 char형은 부호에 한 비트를 소모해야하므로 2의 7승 즉, -128부터 127까지의 범위를 나타낼 수 있다. 아스키코드의 범위 아스키 코드는 기본적으로 일반적으로 쓰는 아스키 코드와 그 확장된 개념인 확장아스키코드로 나뉘는데 아스키 코드는 0~127까지, 확장 아스키 코드는 기존 0~127에 추가하여 255까지의 정수를 사용한다. char 와 unsigned ch..

C 2023.10.13

input요소의 주요 속성

input요소의 주요 속성 autocomplete를 위해 사용되는 표준 name값 name : 사람의 전체이름 email : 이메일 주소 username : 사용자 계정 new-password : 새로운 비밀번호 current-password : 사용자의 현재 비밀번호 one-time-code : 사용지를 인증할 떄 사용하는 1회성 코드 organization-title : 직위 organization : 회사 또는 조직명 country : 국가 코드 country-name : 국가 이름 postal-code : 우편번호 address-level1 : 첫번째 행정구역, 한국의 경우 특별시/광역시/도 address-level2 : 두번쨰 행정구역, 한국의 경우는 시/구 address-level3 : 세번째..

HTML & CSS 2023.10.12

form 요소

form 요소 보통은 form 이라는 요소를 통해 그 안의 정보를 로그인등의 이름으로 묶어 전달해주는 용도로 주로 사용되었지만 헌재는 리엑트등 spa(single page application)의 사용으로 용도가 맞지않는 경우가 발생되어 최근에는 잘 쓰지않는 추세이다. 프론트엔드 프레임워크를 사용하면 form 태그 없이 spa로 전송하여 사용가능하다. input의 email옵션은 form 태그 안에 있으면 자동으로 이메일의 양식인지 검사해준다. 다만 이 경고창의 디자인은 변경이 부락하기 떄문에 웹 전체의 디자인을 위해 일부러 안는 경우도 있다. submit type을 가진 버튼을 누르면 form의 action안에 있는 곳으로 그 모든 정보를 전달해준다. 라벨로 체크 박스를 연결해주면 글자를 선택해도 체크..

HTML & CSS 2023.10.12

strlen 함수의 구현

strlen 함수 char *타입, 즉 string형식의 문자열을 받아 문자열의 길이를 반환하는 함수이다. 원형은 size_t strlen(const char* str)인데 이때 size_t는 메모리나 문자열의 사이즈를 나타낼 때 사용하는 unsigned int형이라고 생각하면 된다. 그러나 컴파일러등의 이유로 형식이 달라질 수 있다. string.h라는 헤더파일에 정의되어있는 함수이다. strlen 함수의 구현 size_tft_strlen(const char *str) { size_ti; i = 0; while (str[i] != '\0') i++; return (i); } #include #include intmain(void) { printf("ft_strlen : %lu\n", ft_strlen(..

C 2023.10.09
728x90
반응형