문자열 / std::string 헤더 파일 선언 #include 일반 변수와 같이 초기화가 가능하다. std::string myStr; myStr = "Hi"; std::string myStr("21"); std::string myStr("Hello World!"); 문자열 입출력 #include #include int main() { std::string name; std::cin >> name; std::string age; std::cin >> age; cout
함수 포인터란, 함수의 이름도 배열의 이름처럼 '주소상수'에 부여한 식별자입니다. 따라서 함수의 이름도 포인터 변수에 저장할 수 있습니다. 다만, 변수의 자료형이 함수 호출에 필요한 정보(매개변수, 호출 규칙, 반환 자료형)들을 포함하고 있어야 변수를 이용해서 호출할 수 있습니다. 17.3.1 함수 포인터 함수 포인터의 기본 형식은 반환 자료형 ( 호출 규칙 *변수이름)(매개변수) #include //최댓값을 반환하는 함수 선언 및 정의 int GetMax(int a, int b, int c) { int nMax = a; if (b > nMax) nMax = b; if (c > nMax) nMax = c; return nMax; } int __cdecl main(void) { //int 매개변수 셋을 받..
함수 호출 규칙calling convention은 호출자 함수가 피호출자 함수를 호출하는 과정에서 매개변수를 전달하는 순서 및 매개변수가 사용한 메모리 관리방법 등에 관한 규칙입니다. 대표적으로 __cdecl, __stdcall, __fastcall 등 세 가지 정도가 있는데 이 세가지가 C언어의 표준에서 정의하는 것은 아닙니다. 세 가지 모두 약간씩 차이가 있는데 C/C++ 컴파일러의 기본 함수 호출 규칙은 __cdecl입니다. 호출 규칙 매개변수 스택 정리 매개변수 메모리 __cdecl Caller Stack __stdcall Callee Stack __fastcall Callee Stack + Register 17.2.1 __cdecl __cdecl 호출 규칙은 매개변수를 오른쪽부터 스택에 Push..
함수로써 수행할 코드는 얼마 안되는데 함수 호출로 인한 오버헤드overhead가 더 커질 수도 있습니다. 그래서 나온 것이 매크로와 __inline입니다. __inline은 넘어가도록 하겠습니다. 16.2.2 매크로 특수화 연산자 #, ## #과 ##이 있습니다. #은 인수가 무엇이든 모두 '문자열'로 만들어 줍니다. ##은 두 매개변수를 한 덩어리로 묶어 코드를 만들어주는 연산자입니다. #include //a를 "a"(문자열)로 변경하는 매크로 정의 #define STRING(a) #a //a와 b를 합쳐 하나로 붙여주는 매크로 정의 #define PASTER(a, b) a##b int main(void) { int nData = 10; //PASTER(nDa, ta)는 그냥 nData라고 쓴 것과 같..
- Total
- Today
- Yesterday
- 알고리즘
- 종류
- 공부
- 재귀함수
- call by reference
- 배열
- 비트필드
- Algorithm
- 회전리스트
- 시간복잡도
- 강의
- 3차원 배열
- 간접 지정
- 형승격
- 구조체
- C
- 자료구조
- call by value
- 다차원 배열
- 공용체
- 파이썬
- timecomplexity
- 프로그래밍
- inflearn
- 1차원 배열
- 포인터
- 직접 지정
- codeit
- 2차원 배열
- 공간복잡도
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |