Я бы просто пошел с петлей. memset () выполняет несколько небольших оптимизаций, чтобы записать несколько байтов за итерацию, поэтому вы можете посмотреть, как работает сама функция memset (), и посмотреть, применимы ли такие виды оптимизации к вашему коду. Но, в конце концов, это просто петля.
Вот memset () исходный код - довольно читабельный, хотя вам придется выкопать все определения типов и макросы, чтобы точно понять, как происходит оптимизация.