작성
·
267
1
double foo()
{
return 5.0;
}
int goo()
{
return 6;
}
int main()
{
std::function<int()> fcnptr; // int를 반환하고 매개 변수가 없는 함수 포인터 변수 fcnptr 선언
cout << sizeof(fcnptr) << endl; // 40
fcnptr = goo;
cout << fcnptr();
return 0;
}
함수 포인터도 함수의 주소를 기억하는 변수니까 4bytes를
차지하지 않을까? 싶어서 sizeof를 해봤는데 40이라는 수가 나오네요.
왜 40이라는 수가 나왔는지 궁금해서 메모리 영역, 컴퓨터 동작 원리 등등을 찾아봤지만 끝내 해답을 얻지 못했습니다.
40이라는 숫자가 어떻게 나온 것일까요