본문 바로가기
728x90
반응형

프로그래밍 언어/C++10

연결 리스트(C++) 연결 리스트 : 노드들이 비연속적으로 힙 메모리 상에 연결되어 있는 구조 노드가 힙 메모리 상에 연속해서 존재하지 않는다. 리스트는 첫 번째 노드의 주소값만 가지고 있는다. 노드 : 데이터를 저장하는 기본 단위 struct Node { int data; struct Node* nextNode; }; struct List { Node* headNode; // 리스트의 첫 번째 노드의 주소 int count; // 노드 개수 }; 가변배열은 데이터가 들어갈 공간을 미리 만들어야 되는데 연결 리스트는 데이터가 추가될 때 힙 메모리에 공간을 생성한다. // 초기화 void InitList(List* list) { list->headNode = nullptr; list->count = 0; } 리스트의 맨 마지막.. 2023. 8. 29.
분할구현 계산기를 만드는 소스코드를 헤더파일과 CPP 파일로 분리해서 코드를 작성해보자 func.h(헤더파일) // 함수의 기능은 구현하지 않고 선언만 함 int Add(int a, int b); - 헤더파일에서는 함수의 기능을 구현하지 않고 이런 함수가 있다라고 선언만 함 func.cpp(구현파일) // include는 전처리기로 func.h 파일의 내용을 모두 가져와서 #include 한 파일에 넣어준다 #include "func.h" int Add(int a, int b) { return a + b; } - 헤더파일에서 선언된 함수를 구현 - 선언된 함수가 존재하는 헤더파일을 참조하기 위해 #include 라는 전처리기를 사용한다. 구현하지 않은 함수를 호출하면 링크 단계에서의 에러발생한다. void tes.. 2022. 4. 26.
함수 함수 : 어떠한 기능을 수행하는 것 ex) 계산기의 덧셈을 수행하는 기능, 뺄셈을 수행하는 기능 모듈 : 하나의 프로그램을 구성하는 모든 것을 독립적으로 기능을 수행할 수 있는 최소 단위로 분리한 것 ex) 계산기(프로그램) -> 계산기에 포함된 연산(덧셈, 뺄셈, 나눗셈, 곱셈)기능들을 각각 독립적으로 기능을 수행할 수 있는 기능들로 분할 하는 것 모듈화 : 독립적으로 동작 가능한 기능들로 분리해서 사용하면 새로운 개발 요구사항이 들어왔을 경우 모듈이 되있는 것들을 조합해서 새로운 것을 빠르게 만들수 있고, 유지보수를 쉽게 할 수 있다. Q1) 하나의 기능(함수)은 독립적으로 재활용이 가능하게 최소 단위로 쪼개서 만들어야 하는 이유는? 1. 어떠한 큰 기능을 만들 때 독립적으로 재활용이 가능한 여러 기.. 2022. 4. 2.
비트 연산자 쉬프트 연산 unsigned char byte = 5; // 0 0 0 0 0 1 0 1 -> 2^2 + 2^0 byte 2^2*2배 + 2^0*2배 = 2^N승 만큼 2배증가해서 10이됨 byte 2^2*4배 + 2^0*4배 = 4배증가 20 byte >> 1; // 오른쪽으로 N(1)칸 이동 0 0 0 0 0 0 1 0 -> 2^2/2 + 2^0/2 = 2^N승 만큼 줄어들어서 2가 됨 비트곱(&), 비트합(|), XOR(^), 반전(~) ---> 이렇게 비트연산자를 공부하면 금방 까먹음 와닿지도 않고 비트 연산자가 언제 쓰이는지도 모르기 때문에 그러면 비트 연산자는 언제 쓰이는가?? 특정상태를 표현하는 경우) 게임 캐릭터의 상태값을 표현한다고 예시를 들어보자 // 캐릭터의 상태 #define HUN.. 2022. 3. 27.
728x90
반응형