[C++] Class(클래스)란?
·
C & C++/C++
OOP(Object-Oriented Programming) 객체 지향 프로그래밍 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 객체가 프로그래밍의 중심이 된다. Object(객체)란? https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 객체 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 컴퓨터과학에서 객체는 클래스에서 정의한 것을 토대로 메모리에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수가 될 수 있다. 프로그래밍 언어는 변수를 이용해 객체에 접근하므..
[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] file discriptor (파일 디스크립터)
·
C & C++
파일 디스크립터란? 리눅스와 유닉스에서는 시스템을 전부 파일로 처리하여 관리한다. (하드웨어 등 모든 장치도 포함) 시스템에서 프로세스가 파일에 접근하기 위한 방법으로 파일 디스크립터(FIle Descriptor)라는 핸들이 필요하다. 해당 파일을 open할때( 해당파일에 접근할 때 ) 파일 디스크립터는 0부터 N까지 즉, 음수가 아닌 0부터 차례대로 숫자를 부여받으며, 0, 1, 2는 프로세스가 메모리에서 실행을 시작할때 기본적으로 할당되는 파일 디스크립터이다. 특정한 파일에 접근하기 위한 추상적인 키이다. 일반적으로 POSIX 운영체제에 쓰인다. POSIX에서 파일 디스크립터는 정수이다. 표준 POSIX 파일 서술자 0 : 표준 입력(stdin) 1 : 표준 출력(stdout) 2 : 표준 오류(st..
[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 위와 같이 ..
[C] (strncpy, strncat) vs (strlcpy, strlcat)
·
C & C++
strn* strl* strlcpy 함수는 strcpy 함수(src 문자를 대상버퍼(dst)에 복사)를 대상 버퍼를 오버플로우 할 수 없는 보안 버전으로 대체하기 위한 것이다. strcat에 대한 유사한 대안을 제공하는 strlcat도 있다. 버퍼 오버플로우를 방지하는 데 사용할 수 있는 표준 C함수 인 strncpy 및 strncat은 올바르게 사용하기 어렵고 느리게 만드는 결함을 가지고 있다. strlcpy 및 strlcat 은 올바른 사용법이 가능한 한 간단하도록 설계되었다. strlcpy와 strlcat은 Todd C. Miller와 Theo de Raadt에 의해 개발되었으며 OpenBSD 버전 2.4에서 처음 구현되었다. 이후에 libbsd를 통해 FreeBSD (버전 3.3부터), Solar..
[C in Linux] Makefile
·
C & C++/C in Linux
Makefile이란? Linux상에서 반복적으로 발생하는 컴파일을 쉽게하기위해서 사용하는 make프로그램의 설정 파일. Makefile을 통해 라이브러리 및 컴파일러 환경을 관리할 수 있다. Incremental build를 사용하기 위함. Incremental build란? 반복적인 빌드 과정에서 변경된 소스코드에 의존성(Dependency)이 있는 대상들만 추려서 다시 빌드하는 기능이다. 예를 들어, 위의 빌드 예제에서 main.c의 한 줄만 바꾸고 다시 빌드할 때, 컴파일과 링크만 수행하는 경우가 이에 해당한다. Makefile의 기본 구조 파일명 : Makefile Makefile은 Target(대상), 의존 관계(Dependency), 명령(Recipe/Command)의 세가지로 아루어진다. -..
[C] C언어가 사용하는 메모리 구조
·
C & C++
C언어가 사용하는 메모리 구조 참고 : https://youngq.tistory.com/9 C언어 메모리 구조 - 실제 메모리로 확인하기 (1/3) C언어가 사용하는 메모리 구조 XCode를 이용하였지만, 보는데에는 큰 지장이 없습니다. 1. C언어가 사용하는 메모리 C언어의 메모리 관리와 관련된 이미지를 검색해보면 정말 다양한 내용들을 볼 � youngq.tistory.com
[C] 포인터, strcpy, strncpy
·
C & C++
포인터(pointer) 해석해보면 '무언가를 가리키는 것' 이라고 할 수 있다. 변수가 컴퓨터에 저장될 때를 그림으로 나타내면 왼쪽과 같다. 특정 주소를 갖는 메모리에 변수의 크기 만큼 할당된다. 크기가 커져 메모리를 더 사용할 때에는 변수의 시작위치의 주소가 해당 변수의 주소가 된다. 포인터 변수는 메모리에 가리키고 싶은 주소를 담게하는 변수다. 포인터는 함수를 이용할 때 진가를 발휘한다. 함수에서 매개변수는 인자를 전달할 때 복사해서 사용한다. 즉, 원래 변수는 다른 함수에 매개변수로 주어져도 수정할 수 없다. 따라서 포인터로 메모리의 주소를 넘겨주면 다른 함수에서도 메모리에 직접적으로 참조할 수 있게된다. strcpy과 strncpy로 예를 들어보자. strcpy 헤더파일의 함수로, string c..
WONILLISM
'C & C++' 카테고리의 글 목록 (2 Page)