본문 바로가기

컴퓨터

2-5 레퍼런스를 이용한 성능의 향상 부담스러운 Call-By-Value 거두절미 하고 아래의 Call-By-Value 예제를 보자. #include using std::cout; using std::endl; using std::cin; struct _Person { int age; //나이 char name[20]; //이름 char personalID[20]; //주민등록 번호 }; typedef struct _Person Person; void ShowData(Person p) { cout
2-4. 레퍼런스와 함수 레퍼런스의 장점을 알아보기 위해 먼저 아래 코드를 보자. 포인터를 이용한 Call-By-Reference의 예에 잘못된 코드가 한 줄 들어간 것이다. #include using std::cout; using std::endl; void swap(int *a, int *b) { int temp = *a; a++; *a = *b; *b = temp; } int main(void) { int val1 = 10; int val2 = 20; cout
2-3 레퍼런스(Reference)의 이해 레퍼런스란? 레퍼런스란 이미 이름이 있는 대상에게 붙여주는 별명이다. int &ref = val; val이라는 int형 변수의 이름에 ref라는 별명을 붙인 것이다. &연산자는 C++에서 레퍼런스를 선언할 때에도 사용된다. C에서는 주소 값을 얻을 때 사용한다. 레퍼런스의 특징 #include using std::cout; using std::endl; int main(void) { int val = 10; int &ref = val; val++; cout
1-5. 이름공간(namespace)에 대한 소개 namespace의 필요성 같은 이름의 충돌에 대한 대처를 위해 namespace가 필요하다. 협업을 하다 보면 서로 같은 이름의 함수를 사용해 문제가 생기는 일이 비일비재하다. 이를 위한 방안이 namespace이다. 아래는 A.com이라는 회사와 B.com이라는 회사가 협업하는 중에 각자의 함수를 모아서 넣었더니 이름 충돌이 일어나는 예이다. #include void function(void) { std::cout
1-4. 인-라인(in-line) 함수 함수가 inline화 되었다. 함수 호출 문장이 함수의 몸체 부분으로 완전히 대치돼 버리는 현상을 가리켜 "함수가 inline화 되었다."라고 표현한다. 함수 호출은 스택 메모리 공간의 할당도 요구하며 시간도 많이 요구된다. 함수를 inline화 할 경우, 함수 호출을 안 해도 되기 때문에 스택 메모리 공간을 절약하고 시간도 벌 수 있다. C의 경우, 매크로 함수가 인라인 함수이다. 이는 전처리기에서 처리된다. C++에서는 좀 더 세련된 방법으로 함수를 inline화 할 수 있다. 이는 컴파일러에 의해서 처리된다. #include inline int SQUARE(int x) { return x * x; } int main(void) { std::cout