본문 바로가기

Code/C11

메모리(RAM) 구조 작성한 프로그램이 컴퓨터에서 어떻게 동작하는지 이해하려면 메모리 구조에 대해 이해할 필요가 있다. 프로그램이 실행되는 과정을 메모리 구조와 함께 정리한다. RAM과 ROM 본문에서 이야기하는 메모리는 RAM을 의미한다. RAM과 ROM의 차이를 간단히 정리하자면 다음과 같다. RAM은 자유롭게 읽고 쓸 수 있는 기억장치로, RWM(Read Write Memory)라고 부르기도 한다. 또한 RAM에는 현재 사용 중인 프로그램이나 데이터가 저장되어 있다. 시스템의 전원이 꺼지면 기억된 내용이 모두 사라지는 휘발성 메모리의 특징을 가진다. 일반적으로 주기억장치 또는 메모리라고 불린다. ROM은 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기가 불가능하다. 또한 시스템의 전원이 꺼져도 기억된 내용이 .. 2020. 12. 28.
c언어 정적변수, 지역변수, 전역변수 비교 (static, local, global) 함수 내에서 사용하는 변수로서 지역변수, 전역변수, 정적변수의 차이를 알아본다. [전체 요약] ☑️ 지역변수(local variable, 자동변수)는 중괄호 내부, 함수의 매개변수(Parameter)에서 사용되는 변수를 의미한다. 지역변수의 지역은 함수의 내부, 중괄호 내부를 의미한다. 따라서 함수 안에서만 접근 가능하며, 함수를 벗어나면 사라진다 (= 변수의 메모리 공간이 소멸된다). 지역변수는 초기화하지 않으면 컴파일 에러가 나거나 쓰레기값이 저장된다. 더보기 지역변수(local variable)는 자동변수(auto variable)와 같다. 자동변수는 흔히 블록(중괄호) 안에서 사용하는 변수로서, 변수가 생성된 뒤에 자동으로 사라진다고 하여 자동변수라고 부른다. 매우 흔히 사용하기 때문에 auto .. 2020. 12. 25.
[C언어] 내장함수 비교 - memcpy, memccpy / memmove / memchr / memcmp #include 에 있는 메모리 관련 함수를 정리한다. 레퍼런스는 man 가이드다. memcpy와 memccpy 비교 메모리 영역을 복사하는 함수다. PROTOTYPE #include void *memcpy (void *restrict dst, const void *restrict src, size_t n); #include void *memccpy (void *restrict dst, const void *restrict src, int c, size_t n); NAME copy memory area copy string until character found DESCRIPTION The memcpy() function copies n bytes from memory area src to memory .. 2020. 10. 8.
[C언어] 내장함수 비교 - strchr, strrchr / strstr, strnstr / strcmp, strncmp 에 있는 문자열 관련 함수를 정리한다. 레퍼런스는 man 가이드다. strchr와 strrchr 비교 RETURN 항목에서 말하는 'character'는 byte를 의미한다. PROTOTYPE #include char *strchr(const char *s, int c); #include char *strrchr(const char *s, int c); NAME locate character in string DESCRIPTION - The strchr() function locates the first occurrence of c (converted to a char) in the string pointed to by s. - The terminating null character is consider.. 2020. 10. 8.
[C언어] 데이터 타입 비교 - int, unsigned int, size_t int 32bit 컴퓨터 기준으로 정수가 32bit (4byte) 크기라고 가정한다면 int 자료형은 2의 32제곱의 값(4,294,967,296)을 표현할 수 있다. 음수, 0, 양수를 포함하여 최소 -2,147,483,648에서 최대 2,147,483,647까지 표현하는 것이다. ex. 쥬니어네이버 동물농장 포인트는 21억이 최대였다. ex. 마인크래프트 레벨은 21억이 최대다. unsigned int unsigned int 자료형은 int의 범위를 양의 정수 범위로만 사용한 자료형이다. 따라서 양의 표현이 2배 늘어난다. 최소 0부터 최대 4,294,967,295까지 표현한다. ex. 바람의 나라 최대 경험치는 42.9억이다. size_t size_t는 a.k.a. 'long unsigned int.. 2020. 10. 7.