C++ 함수 만들기 (고려사항)
- Return 값을 표기
- 인자 값의 정확한 타입을 표기
- 인자 값과 내부 변수를 구별
- 해당 인자 값을 어떻게 활용하는지 표기
- 포인터(*) 제거
- int GetStringSize(); => int nGetStringSize()
=> 함수 호출시에 리턴값을 알 수 있음.
=> n: int, sz: String, p: Point, L: Long
- int nGetStringSize(TCHAR* szName, int nNameSize)
=> 함수의 인자값이 어떤 형태인지 알 수 있다.
- int nGetStringSize(TCHAR* _szName, int _nNameSize)
=> “_”를 이용하여 이 변수는 함수 인자값으로 받아온 변수라는 것을 알 수 있다.
- int nGetStringSize(TCHAR* szName, int nNameSize)
함수에 Name을 복사하여 Buffer에 담는 함수라고 하고 인자를 추가하면
int nGetStringSize(TCHAR* szName, int nNameSize, TCHAR* _szBuffer)
int nGetStringSize(TCHAR* szName, int nNameSize, TCHAR* _szOutPutBuffer);
두번째가 가독성이 좋음.
이것을 좀더 수정하면
int nGetStringSize(__in TCHAR* szName, __in int nNameSize, __out TCHAR* _szOutPutBuffer);
__in, __out, __inout 은 표기만을 위한 매크로
int nGetStringSize(__in TCHAR* szName, __in int nNameSize, __out TCHAR* _szOutPutBuffer, __inout INT& _nOutPutBufferSize);
_nOutPutBufferSize는 _szOutPutBuffer의 사이즈를 넣어주는 변수. 그리고 내부에서 _szOutPutBuffer에 담긴 길이를 리턴할 수 있는 것.
- INT* = PINT, CHAR* = PSTR, LPSTR, TCHAR* = LPTSTR, VOID* = PVOID 등으로 *이 안보이도록 함.
댓글