C (101) 썸네일형 리스트형 c++ copy elison, Retrun value optimization 보통은 l value reference로 인자를 보내주면 충분하다 그리고 함수에 인자는 pass by value object의 인자는 pass by reference가 좋다. 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 31 // RVO // COPY ELISON #include #include std::string getString() { // RVO 개입 std::string s = "nocodeprogram"; return s; } std::string getString(std::string a, bool b) { if (b) { a = "nocodeprogram"; return a; } return.. c++ lvalue rvalue zero copy 공부 기록을 남긴다. lvalue rvalue zero copy 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 #include #include #include #include class Cat { public: void s.. c++ heap memory space heap 공간을 잘 쓰지 않으면 memory leak이나 memory fragmentation에 직면할 것이다. stack 대신에 heap memory를 쓰는 이유는 1. life cycle 2. large size 3. dynamic runtime 때문이다 life cycle 측면에서 보면, stack 공간은 함수가 종료하면 사라진다. 따라서 pointer를 활용해서 heap 공간에 계속 남아 있는 것을 쓰는 게 좋다 large size는 stack 공간은 size에 한계가 있다. 따라서 large size를 사용하기 위헤 heap 공간을 쓴다. dynamic runtime이다. stack 공간에 있는 내용은 compile시에 결정된다. heap을 사용하면 runtime에 지정되는 것을 사용할 수 있다.. c++ stack 공간, class, struct, 타입별 메모리 사이즈 공부한 거 정리 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 #include #include #include struct ST { int a; int b; }; struct ST2 { int a; // 4 int b; // 4 short c; // 2 // 메모리 padding 때문에 크기가 12로 나온다 }; class Cat { public: void printCat(); private: int age; float weight; //.. c++ extern static 기록 정리 extern은 외부에서 함수나 변수를 가져올 떄 정의하는 것이다. main.cpp에서 extern int i; foo.cpp 에서 i=10을 정의했다면 링크 할때 main.cpp의 i를 foo.cpp에서 가져온다. static은 해당 파일(foo.cpp)에서만 쓰이는 거다 foo.cpp에서 static을 사용한다면 foo.cpp에서만 효력이 유효하다. 마지막으로 extern "C" 는 함수 앞에 붙이는 것인데 c++에서는 function overloading 때문에 name mangling이 되는데 extern "C"를 하면 name mangling을 없애주어서 C 스타일로 바꿔준다. c++ preprocessor 공부기록 ifdef, replace https://www.youtube.com/watch?v=GUgX9eV_Bu0&list=PLDV-cCQnUlIY4TMoRsrW0oqjCLTSm1nAf&index=4 참조하였음 ABCD가 정의되어있으므로 ifdef ABCD가 참이므로 std::cout 2==2가 되므로 std::cout [C언어] 최소공배수 구하기 (정보처리기사 외) While문 쓰기 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 #include int main() { int num1; int num2; int max_num, min_num; scanf("%d %d", &num1, &num2); max_num = (num1 > num2) ? num1 : num2; // 두 수 중에서 더 큰 수를 골라준다 min_num = (num1 [c 언어] 소수의 개수 구하기 (1차원배열, do~while, while, if, 정보처리기사 외) 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 31 32 33 34 35 36 37 38 39 40 41 42 #include #include // malloc 함수 포함 #include // memset 함수 포함 int main() { int *arr = malloc(sizeof(int) * 10000); memset(arr, 0, sizeof(int) * 10000); int i = 2; // 2 부터 소수 판정 시작 int j = 2; // index int n; int sum = 0; // 소수가 아닌 것들의 합 scanf("%d", &n); for (i=2; i 이전 1 ··· 8 9 10 11 12 13 다음