티스토리 뷰

반응형

우리는 개발을 하면서 함수명 및 인자명을 명명하는 시간이 점점 길어진다는 것을 알 수 있다.
우리팀에서 더 나아가 다른 사람이 더 보기 편한 한번에 알 아 볼수 있는 이름으로 함수 및 인자 명을 결정해야 되는것을 이미 알고 있기 때문이다.

우리가 배울 때 책에서 항상 본 일반적인 함수 명입니다. 

void foo(), void boo() 

에러코드나 함수에서 리턴 되는 값이 있는 경우입니다. 

bool foo(), LRESULT boo() 

이제 함수 이름을 좀 더 알아보기 슆게 만들어 봅시다. 

int GetSize(), bool IsTerniamte()

좀 더 나아가 함수에 인자 값들이 필요하기 떄문에 넣습니다. 

int GetSize(TCHAR* Name) 
int GetSize(std::string Name);

그런데 인자 값만 보고 타입을 알려주고 싶어집니다. 내부 코드를 감추고 싶조..

int GetSize(TCHAR* szName);
int GetSize(std::string ssName);

그래도 배운것이 있으니 명확하게 수정 안함!! 선언하고 싶네요 const 많이 사용 합시다!

int GetSize( const TCHAR* szName); 
int GetSize( std::string ssName);

불필요한 CALL By Value에 의한 리소스 소모가 있습니다. 변경 합시다.

int GetSize( const TCHAR* szName);
int GetSize (const std::string& ssName);

이제 좀 더 확실하게 매크로를 이용, 내부에서 함수 인자들이 어떻게 사용되지는 알려주고 싶을 때 __in 을 넣어 줍니다. 

int GetSize( __in const TCHAR* szName );
int GetSize(__in const std::string& ssName);

9. __out, __inout 사용 해보기 위한 단계 

원형:


int GetFullName( TCHAR* szName, TCHAR* szFullName ); 
이름을 넘기면 전체 이름을 버퍼에 번환한다.

int GetFullName( TCHAR* pszName, TCHAR* pszFullName ); 

int GetFullName( TCHAR* _pszName, TCHAR* _pszFullName ); 

int GetFullName( const TCHAR* _pszName, TCHAR* _pszFullName ); 

int GetFullName( const TCHAR* _pszName, TCHAR* _pszFullName, int _nBufSize ); 

int GetFullName( __in const TCHAR* _pszName, __out TCHAR* _pszFullName, __in int _nBufSize ); 

int GetFullName( __in const TCHAR* _pszName, __out TCHAR* _pszFullName, __inout int& _nBufSize ); 

완성형
int GetFullName( __in LPCTSTR
 _pszName, __out LPTSTR _pszFullName, __inout int& _nBufSize ); 

" int형의 리턴 값을 가진 GetFullName이라는 함수는 
const nullterminate TCHAR 형태의 값을 받고 
nullTerminate TCHAR 형태의 버퍼를 할당 한뒤 버퍼의 포인터와 크기를 담은 변수를 넣어주면 
_pzsFullName에 값이 담기고, _nBufSize에 해당 길이가 담겨 오는 함수 입니다. "

이 해석을 함수 명만 보고 알 수 있게 해야 합니다.
이것은 정답이 아닙니다. 실제 현업 코드는 이것보다 더 간결하고 좋게 만듭니다. 

다른사람이 볼 코드라고 생각하고 코딩합시다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함