본문 바로가기

프로그래밍/언어_스크립트36

const와 함수 const function( const type arg ) const 1. 함수에 선언되는 const 다른 멤버 함수에서 객체의 멤버 변수를 변경하지 않기 위한 목적으로 사용??? 2. 리턴 타입에 선언되는 const 포인터나 레퍼런스를 리턴할 때 caller 측에서 값을 변경 못 하도록 하기 위해서 사용 3. 인자에 선언되는 const 2013. 5. 25.
C언어의 함수 호출 규칙 %%__cdecl 방식을 따르며 다음과 같은 특징이 있다. - caller 측어세 인자를 push (오른쪽에서 왼쪽 순서대로)하고 return된 후에 stack pointer 정리- return 값이 4바이트 이내일경우 eax에, 8바이트 일경우 상위 4바이트는 edx, 하위 4바이트는 eax에 저장,8바이트보다 클 경우 X %%caller saved register : eax, ecx, edx -함수를 call 하기 전에 백업한 후 함수에서 return 되면 복구한다.callee saved register : ebx, esi, edi, ebp - 함수가 실행되면 백업한 후 리턴되기 전에 복구 한다. 2012. 6. 14.
어셈 참고 약간 http://debugjung.tistory.com/category/Assembly - mov 와 lea 명령의 차이- 스트링과 배열, 어셈으로 카피- mmx와 fpu를 이용한 memcpy - 어셈 명령어 정리 ebp 가 0x125e4504 이고 주소 0x125e4500 의 4바이트에 77이란 값이 들어있을경우 lea eax, dword ptr ss:[ebp-4] 는eax에 0x125e4500 이 들어가게 되고 mov eax dword ptr ss:[ebp-4] 는eax에 77 이 들어가게 된다. http://idjhh.springnote.com/pages/400921 어셈블리 기본 명령어 2012. 6. 6.
C++ class skeleton class Skeleton { public: Skeleton(); Skeleton( const Skeleton &ref ); Skeleton& operator = ( const Skeleton &ref ); virtual ~Skeleton(); virtual const char* GetName() { return name; } protected: char *name; } Skeleton::Skeleton() : name( "Skeleton" ) { } Skeleton::Skeleton( const Skeleton &ref ) { name = ref.name; } Skeleton& Skeleton::operator = ( const Skeleton &ref ) { name = ref.name; return.. 2010. 10. 20.