복습)
#define : 매크로 기능으로 치환해주는 기능을 한다
class Test
{
private: //명시적 표현
int a;
int b;
int c;
public:
Test() //생성자
{
}
void Func()
{
this->a = 400;
}
};
void GlobalFunc() //__cdecl 호출 규약이 생략되 있다
{
int a = 0;
}
int main()
{
GlobalFunc();
}
this를 사용하는 함수 즉 멤버 함수들은 void __thiscall Func() 에서 __thiscall 이 생략되있다.
이거를 함수 호출 규약이라고 한다.
C++에서는 가장 유명한 함수호출규약이 3가지 있다.
__thiscall : 클래스 내부에서 this를 사용하는 함수들이 사용
__stdcall : c++기본 정적 함수들이 사용
__cdecl : c기반 전역함수들이 사용
위의 코드에서 GlobalFunc()는 main이 실행해 줬고 이를 호출자라 한다.
함수의 사용이 끝나면 함수를 정리해주는데 이를 정리자라고 한다.
함수호출규약 | 호출자(함수 메모리를 넣어주는) | 정리자 |
__thiscall | 호출자(main) | 호출자(main) |
__stdcall | 호출자(main) | 자기자신(GlobalFunc) |
__cdecl | 호출자(main) | 호출자(main) |
기계어를 잘 모르기 때문에 일단 외워놓자 !!
'C++' 카테고리의 다른 글
OverLoading , 컴파일 4단계,네임맹글링 (0) | 2020.12.13 |
---|---|
nullptrObject (0) | 2020.12.13 |
ObjectInit,Constructor(생성자) (0) | 2020.12.13 |
접근제한자 (0) | 2020.12.13 |
This (0) | 2020.12.12 |