memset () 반환 값의 용도는 무엇입니까? memset()void*함수에 전달 된 주소와

memset()void*함수에 전달 된 주소와 항상 동일한 값 을 반환 하도록 선언됩니다 .

반환 값의 용도는 무엇입니까? 왜 반환되지 void않습니까?



답변

서명은 다른 모든 유사한 기능과 라인에 있습니다 memcpy(), strcpy()등 난 항상이이 같은 기능에 체인 호출에 1을 활성화하기 위해 수행하고, 그렇지 않은 경우에 표현 이러한 호출을 사용했다 생각했다.

즉, 이러한 방식으로 반환 값을 사용해야하는 실제 상황을 본 적이 없습니다.


답변

다음과 같은 콜 체인에 사용할 수 있습니다.

char a[200];
strcpy(memset(a, 0, 200), "bla");

답변

함수를 다음과 같은 다른 함수의 인수로 사용하려면 sprintf


답변

나는 인터넷 검색에서 memset이 반환 한 것을 볼 때이 질문을 보았습니다.

하나의 값을 테스트하는 코드가 있으며 이것이 사실이면 값이 0인지 테스트합니다.

C에서 0을 테스트하는 완전히 이식 가능한 방법이 없기 때문에 중간에 memset을 실행해야합니다.

그래서 내 코드는 다음과 같습니다.

if ( a==true && (memcmp(memset(zeros, 0, sizeof(zeros)), b, sizeof(zeros)) == 0) )

이것은 이전 질문에 나열된 연결 목적을 말하지만이 기술에 대한 사용의 예입니다.

이것이 좋은 코딩인지 아닌지 판단하기 위해 다른 사람들에게 맡기겠습니다.