- memset(포인터, 설정할값, 크기);
- void *memset(void *_Dst, int _Val, size_t _Size);
- 값 설정이 끝난 포인터를 반환
여기서 두번째줄이 무슨의미인건가요?
C 언어 함수 레퍼런스를 보면 두 번째 줄처럼 제시가 됩니다.
https://en.cppreference.com/w/cpp/string/byte/memset
https://docs.microsoft.com/en-us/previous-versions/1fdeehz6(v=vs.140)
따라서 현업에서 개발하게 되더라도 표기법에는 익숙해지는 게 좋습니다.
영문 자료를 많이 보게 될 텐데, 그렇다면 더더욱 이러한 표기법에 익숙해져야 합니다.
프로그래밍을 공부하고 싶다면 가장 먼저 배워야 할 언어는 '영어'라는 우스개가 있죠.
- memset(포인터, 설정할값, 크기);
- void *memset(void *_Dst, int _Val, size_t _Size);
- 값 설정이 끝난 포인터를 반환
memset 안에 첫 번째는 void *_Dst입니다. Dst는 대상 포인터, destination의 약어일 겁니다.
void *이면 된다는 뜻입니다. void *_Dst를 읽기 어렵죠? 그래서 위에 한글로 편하게 읽는 법을 써 놨습니다.
memset(포인터, 설정할값, 크기)가 그 뜻입니다.
두 번째 int _Val이면 Val은 value 값의 약어일 겁니다.
int 타입이고, 설정할값입니다. 크기는 size_t 타입을 쓰고, _Size 변수입니다. 변수 이름은 의미를 위해 쓴 것이니 중요한 건 아닙니다.
memset(numPtr, 0x27, 8); // numPtr이 가리키는 메모리를 8바이트만큼 0x27로 설정
두 번째는 값인데 0x27로 지정했으니 채울 값은 0x27로 해라입니다. 8은 크기이니까 8바이트를 0x27로 채워라 입니다.
보통은 초기화가 목적이므로 0x27이 아니라 0을 씁니다. 이건 이후 예제를 보면 확인할 수 있습니다.
따라서 두 번째 제시된 것은 C 언어 문서들에서 볼 수 있는 표준적인 함수 정의이고,
첫 번째 줄에 한글로 제시된 것은 초보자를 위한 읽는 법입니다. 이 두 가지를 숙지하면서 읽는 법을 연습하면 됩니다.
MSDN에서는 조금 더 사용자 친화적으로
이건 개인 취향에 따라 호불호가 있겠지요.
읽는 법은 같이 제시되어 있습니다.