Какая польза от возвращаемого значения memset ()?


memset() объявляется для возврата void* это всегда то же самое значение, что и адрес, переданный в функцию.

какая польза от возвращаемого значения? Почему он не возвращается void?

4 85

4 ответа:

подпись соответствует всем другим аналогичным функциям:memcpy(),strcpy() etc. Я всегда думал, что это было сделано для того, чтобы можно было связывать вызовы таких функций и в противном случае использовать такие вызовы в выражениях.

Он может быть использован для вызова цепочки типа:

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

чтобы использовать функцию в качестве аргумента для другой функции, такой как sprintf

я столкнулся с этим вопросом, когда гуглил, чтобы увидеть, что memset вернулся.

У меня есть некоторый код, где я тестирую для одного значения, то если это правда тест, чтобы увидеть, если значение нули.

потому что в C нет полностью переносимого способа проверить нули, я должен запустить memset в середине.

вот мой код:

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

Это говорит о цели цепочки, перечисленных в предыдущих вопросах, но это пример использования для этого метод.

Я оставлю это другим, чтобы судить, является ли это хорошим кодированием или нет.