분류 전체보기246 복사 생성자 1. 복사 생성자란 예제 코드 class 포톤캐논 // 포토캐논 #include #include class Photon_Cannon { int hp, shield; int coord_x, coord_y; int damage; public: Photon_Cannon(int x, int y); Photon_Cannon(const Photon_Cannon& pc);// 복사 생성자 void show_status(); }; Photon_Cannon::Photon_Cannon(const Photon_Cannon& pc) { std::cout 2021. 10. 18. 코딩 테스트 사이트 모음 https://programmers.co.kr/learn/challenges 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 2021. 10. 18. Temporary Object Temporary Object object 의 이름이 없으면서 stack memory 에 있는 변수이다. 리터럴 변수의 오브젝트 버전이라고 생각한다. 오브 젝트 변수는 해당 라인의 세미콜론(;) 을 만나면 수명이 끝난다. 예제 클레스 #include using namespace std; class Point { public: int x, y; Point(int a, int b) : x(a), y(b) { cout 2021. 10. 17. 생성자의 초기화 리스트 & static 변수 초기화 리스트 C+++ 에는 클레스에 초기화 리스트 기능을 지원한다. Marine 클래스 생성 예시 Marine::Marine() { hp = 50; coord_x = coord_y = 0; damage = 5; is_dead = false; } //--------------------------------------초기화 리스트 사용------------ Marine::Marine() : hp(50), coord_x(0), coord_y(0), damage(5), is_dead(false) {} 두가지 코드의 모두 동일한 일은 한다. 변수들의 초기화가 그것이다. 하지만 초기화 리스트는 변수를 생성과 동시에 초기화가 가능하다. 즉 int a = 1000; 처럼 하는 것이 초기화 리스트이다. 별로 중요하지.. 2021. 10. 17. 1 만들기(Dynamic Programming ) 1. 다이나믹 프로그래밍이란 (Dynamic Programming ) 가장 익숙한 다이나믹 프로그래밍의 예는 재귀함수를 배울때 피보나치 수열에서 배웠다. int Fi(int num) { if(num == 1) return 1; else if( num ==2 ) return 1; else return Fi(num-1)+Fi(num-2); } 위의 피보나치 수열 처럼 어떠한 문제는 작은 문제들의 합이 될수 있다는 개념이 다이나믹 프로그래밍의 기초이다. 위의 F 는 여러개의 작은 sub F 로 풀 수 있다. 피보나치 수열에서 한것처럼 위에서 부터 F 를 나눠서 플어나가는 방식을 Top-down 방식이라고 한다. 위와 같은 Top-down 방식은 함수를 계속해서 호출해야 되어서 나중에는 스택오버 플로우 문제를 .. 2021. 10. 17. 내가 만든 라이브러리 포함함시키기 GPIO 를 조정하는 라이브러리를 만들어서 main.c 에 포함시켜 보겠다. 1 .h파일과 ,.c 파일은 생성한다. 2 .h 파일을 include 안에 넣는다. .c 파일은 main.c 와 같은 위치에 넣는다. 3. Makefile 에서 PinInOut.o 를 만들고 함쳐주도록 명령해준다. 이렇게 해주고 시그윈으로 make 해주면 잘 동작한다. make를 해주기 때문에 main.c 에는 include 해줄 필요가 없다. 2021. 10. 11. 외부 인터럽트 POI & AIC AIC (p-34) A peripheral identifier is required for the control of the peripheral interrupt with the Advanced Interrupt Controller and for the control of the peripheral clock with the Power Management Controller. ->peripheral identifier 와 AIC_SVR 번호가 호환 되어 있다. ex) 17번 핀에 negative edge 를 가할 때 마다 16 번 핀이 toggle 되는 코드 #include #include void HANDLER(void); void AIC_Init(); volatile unsigned int flag .. 2021. 10. 10. #pragma 사용법 https://blog.naver.com/coolpixer/100039272933 2021. 10. 10. 최적화 관련 사이트 코드 최적화 관련 tip - 주의사항 #pragma 또는 __attribute __ 같이 컴파일러에게 직접적으로 옵션을 설장하는 명령어는 컴파일러에 따라서 지원하기도 하고 안하기도 한다. 때문에 자신이 쓰는 컴파일러에서 옵션을 지원하는지 꼭 확인하고 사용하도록 하자 . #pragma 속도,코드사이즈 #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") 1 . optimize("O3") : 코드의 크기는 신경쓰지 않고 수행시간에 맞춰서 최적화를 진행 2 . optimize("O2") : 코드크기 , 실행시간 모두 적당한 선에서 실행 (보통 default 값을 사용됨) 3 . optimize(".. 2021. 10. 8. 이전 1 2 3 4 5 6 7 ··· 28 다음