Quick actions

cmd+k|ctrl+k

Navigation

Languages

to_string

Snippet info

Language

Cpp

Visibility

public

Author

evine

Created

2016-06-20T01:52:04Z

Updated

2016-06-20T06:39:24Z

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#define to_string(...)                              \
to_string_write_and_return_ptr_(                    \
    (char *)alloca(snprintf(0,0,__VA_ARGS__) + 1),  \
    __VA_ARGS__)

char *to_string_write_and_return_ptr_(char *to_buffer, char *format, ...)
{
    assert(to_buffer);
    va_list args;
    va_start(args, format);
    vsnprintf(to_buffer, 0xffffffff, format, args);
    va_end(args);
    
    return to_buffer;
}

int main()
{
    char *c = to_string("ab %f cd %i", 32.0, 91);
    
    printf(c);
    return 0;
}
INFO