5주차가 시작되었다.
근 2일 동안 CSAPP 책 독서 진도에 집중하느라 블로그 작성을 잘 못했는데, 다시 열심히 해보자.
5주차 발제 내용
일단 저번주에 9장 이론을 공부했기 때문에 무엇을 해야 될지는 대충 감이 온다.
먼저 오늘부터 구현을 시작해서 메모리 단편화를 해결하는 여러 방법의 경우의 수를 모두 구현해서 비교해보고
점수가 제일 높은 코드로 제출하려고 한다.
그후 메모리에 대한 필요한 지식이 생기면 CS 책을 통해서 공부를 더 하는 방향으로 이번주를 진행하려고 한다.
declairation VS definition
declariation은 아래 코드처럼 소스 파일 최 상단에 함수들의 이름들을 나열하는 선언부를 말한다.
C에서 declariation을 하는 이유는 컴파일러가 코드를 위에서 아래로 읽는 과정에서 선언되지 않는 함수가 호출될 가능성이 있기 때문이다.
물론 사용되는 것을 요청하기 전에 선언해 놓으면 declariation은 없어도 문제가 없지만,
개발자들은 그것을 고려하며 코드를 짜지 않기 위해 해당 파일 내에 존재하는 모든 함수를 상단쪽에 선언해주고 시작한다고 한다.
definition은 선언된 함수가 실제로 로직이 구현된 구현부를 말한다.
ld: unknown/unsupported architecture name for: -arch armv4t 오류 해결
이 오류는 GCC 컴파일러가 지원하지 않는 아키텍처의 이름을 사용하려고 시도하고 있다는 것을 나타낸다.
여기서는 '-arch armv4t'라는 아키텍처를 사용하려 했지만, 현재 사용하고 있는 터미널의 GCC에서는 이를 지원하지 않아서 발생했다.
이 문제를 해결하기 위해 두가지 해결 방안을 생각했다.
1. GCC 버전 확인 및 업데이트
2. 아키텍처 옵션 제거
1번은 최근에 설치한 GCC가 버전의 문제로 에러를 발생했을 것 같지는 않아서
아키텍처의 옵션을 제거하는 방법을 시도했다.
컴파일러는 아키텍처 옵션이 없더라도 대부분의 경우 자동으로 올바른 아키텍처를 선택해주기 때문에 Makefile 내의 아키텍처 옵션을 주석 처리해 보았다.
그리고 이 시도로 문제를 해결할 수 있었다.
백준 문제 풀면서 알게된 Python 문법
- 문자와 숫자 구분하며 입력받기
str.isdigit() 은 str이 모두 숫자로 이루어져 있는지 검사한다.
str.isnumeric() 은 str에 숫자 요소가 있다면 True를 출력한다.
- dictionary에서 value 값을 통해 key 찾기
dict.item() 을 이용하여 key,value 를 인자로 받는 for문을 돌리면서 해당 value가 찾는 value라면 key를 반환하는 식으로 로직을 짤 수 있다.
'Jungle' 카테고리의 다른 글
[TIL] 5주차 - (3) : 동적 메모리 할당 기법 개선하기 (0) | 2023.11.10 |
---|---|
[TIL] 5주차 - (2) : C 동적 메모리 할당 코드 분석 및 구동 방식 파악 (2) | 2023.11.10 |
[TIL] 4주차 - (5) : RB-tree 구현 / 포인터의 모든 궁금증들 (4) | 2023.11.06 |
[TIL][Krafton Jungle] 4주차 - (4) : 스터디 리뷰 & 세그멘트 폴트 문제 해결 (0) | 2023.11.05 |
[TIL][Krafton Jungle] 4주차 - (3) : RB Tree 공부 및 실제 구현 (0) | 2023.11.04 |