register int 와 int 의 수행속도 차이 비교 C언어든 C++이든 결국 컴파일러를 거치면 어셈블리로 전환이 될 것입니다. 이는 곧 기계어이며 하드웨어와 연관이 있는 언어이므로, 하드웨어와 관련있는 코딩 구문들도 상당수 존재합니다. 그 중 register int 에 대해 확인 해 보도록 하겠습니다. int main() { int tmp1 = 0; int tmp2 = 0; clock_t clk1 = clock(); for (int i = 0; i < 10000; i++) { for (int j = 0; j < 10000; j++) { tmp1 += i; } } cout
1. 함수의 원형 본격적으로 내용을 다루기에 앞서 함수 포인터의 원형과 포인터의 대상이 될 함수와의 원형은 같아야 한다. 이 점은 일반 서적에서 다루고 있는 내용이라 다 알 것이라고 생각되므로 함수의 원형에 대하여 간단하게 Q/A 식으로 짚고 넘어가겠다. 이해가 안되면 무조건 외우는 것도 한가지 방법이라고 생각됨. 마지막으로 함수 포인터는 함수가 아니라 원하는 함수의 주소를 담고 있는 변수이다. 근본적으로는 포인터 (변수 포인터)에 다른 변수의 주소를 넣는 것과 별로 다를 것이 없다. 다만 함수 포인터의 경우는 변수의 주소가 아닌 함수의 주소라는 점만 다를 뿐이다. int a; char c[5]; float* f; "Hello, World" Q) 위의 코드에서 a, c, f, "Hello, World"의..
먼저 이 글은 포인터에 대한 이해를 필요로 한다. 포인터에 대한 기본지식이 있다고 가정하고 글을 쓰도록 하겠다. int GetAreaEx( int x, int y ) { return x * y; } 우선 이런 간단한 함수가 있다. 우리는 이 함수를 호출하기 위해 명시적으로 GetAreaEx( x, y ); 이런식으로 기술해야 한다. 하지만 예를 들어 GetArea2, GetArea3, ..., GetAreaN 이런식으로 비슷한 함수가 존재하고 이를 상황에따라 다르게 호출해야 한다면 이 방식으로는 관리도 어려울 뿐더러 효율성도 떨어지고 코드량도 많이질 것이다. 또한 외부(스크립트 등)에서 어떤 특정한 함수를 호출하려 할때도 방법이 묘연할 것이다. int (*GetArea)( int, i..