programing tip

memset () 반환 값의 용도는 무엇입니까?

itbloger 2020. 9. 12. 09:13
반응형

memset () 반환 값의 용도는 무엇입니까?


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

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


시그니처는 다른 모든 유사한 함수와 일치합니다. memcpy(), strcpy()등. 저는 항상 이런 함수에 대한 호출을 연결하고 그렇지 않으면 표현식에서 이러한 호출을 사용할 수 있도록이 작업이 수행되었다고 생각했습니다.

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


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

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) )

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

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

참고 URL : https://stackoverflow.com/questions/13720428/whats-the-use-of-memset-return-value

반응형