Си - Сконвертировать int в биты

На ru.stackoverflow задавали вопрос, как сконвертировать int в биты строкой. Мой личный пример. Весьма прилично рабочий, поэтому и пополнил эту коллекцию.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define BITS_IN_INT sizeof(int) * 8
 
void toBitset(int in, char *out) {
    int c, d, t;
    t = 0;
    if (out == NULL) {
        exit(EXIT_FAILURE);
    }
    for (c = BITS_IN_INT-1 ; c >= 0 ; c--) {
        d = in >> c;
        *(out+t) =  (d & 1) ? '1' : '0';
        t++;
    }
    *(out+t) = '\0';
}
 
int main()
{
    const unsigned size = BITS_IN_INT + 1;
    char buffer[size];
    memset(buffer, 0, size);
    int value;
    scanf("%d+", &value);
    toBitset(value, buffer);
    printf("%s\n", buffer);
    return 0;
}