일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- Cloud Spanner
- SFINAE
- 스타트업
- 어셈블리어
- schema first
- 스플릿키보드
- 이노베이션아카데미
- 도커
- psql extension
- 파이썬
- 동료학습
- 텍스트북
- 자료구조
- c++
- 정렬
- raycasting
- adminbro
- 엣지컴퓨팅
- 42seoul
- 42서울
- 레이캐스팅
- 프라이빗클라우드
- 부동소수점
- 어셈블리
- enable_if
- 창업
- mistel키보드
- uuid-ossp
- 쿠버네티스
- GraphQL
- Today
- Total
목록전체 글 (111)
written by yechoi
const const int num = 10; # 변수 num을 상수화 const int *ptr1 = &val1; # 포인터 ptr1을 이용해서 val1의 값을 변경할 수 없음 int *const ptr2 = &val2; # 포인터 ptr2가 상수화됨 const int * const ptr3 = &val3; # 포인터 ptr가 상수화됐으며, ptr3을 이용해 val3의 값을 변경할 수 없음 bool true, false를 나타내는 자료형. true와 false는 참거짓을 표현하기 위한 1바이트 크기의 데이터이나, 출력하거나 정수 형태로 형변환하는 경우에는 각각 1과 0으로 변환되도록 정의돼 있다. bool형 자료형을 선언하는 것도 가능. 참조자 int num1 = 1020; int &num2 = num..
2> /dev/null standard error(2, 표준에러)를 /dev/null로 보내 출력하지 않음. standard output(1, 표준출력)만 출력함 1> /dev/null standard output(1, 표준출력)을 /dev/null로 보내 출력하지 않음. standard error(2, 표준에러)만 출력함 > /dev/null 아무것도 출력 안함. 에러도 일반 결과물도.

** macos, intel syntax 기준 ** section .text global _ft_read extern ___error _ft_read: mov rax, 0x2000003 syscall jc _err ret _err: push rax call ___error pop rdx mov [rax], rdx mov rax, -1 ret read()를 재구현해놓은 어셈블리 코드다. 위 코드를 바탕으로 에러를 처리하는 방법을 정리한다. syscall로 read 함수 호출하기 _ft_read: mov rax, 0x2000003 syscall rax에 넣어놓는 값에 따라 syscall로 호출되는 함수가 다르다. 1은 exit, 4는 write. 여기선 read() 함수를 호출하기 위해, rax에 3을 넣어..

cub3d는 레이캐스팅을 이용해 원시적인 일종의 3D 게임을 구현하는 과제다. 여기서 레이캐스팅이란 단어에서 짐작해보자면, 광선(ray)을 던져(cast) 현재 위치에서 벽(또는 장애물)이 충돌하는 지점을 찾아 거리를 구하는 방식이다. 원시적인 3D게임인 울펜스타인은 이 방식으로 만들어졌다. 처음 과제를 마주했을 때 든 생각은 '내가 이걸 한다고?'였다. 앞선 과제인 printf 구현도 각종 플래그 때문에 까다로웠지만, 그건 그래도 '어떤 방식으로 해야겠다'는 짐작은 드는 정도였다. 그런데 cub3d는 뭐부터 해야 하는지 감이 전혀 안왔다. 아무 것도 없는 상탠데 어떤 코드를 쓰면 저런 그림이 나오는지요... 레이캐스팅을 이해하고 구현하는 것도 어렵지만, 이 밖에도 cub3d에선 해줘야 할 부가적인 것들..