解决变参数问题:va_list、va_start、vsnprintf、va_end的使用方法和实例

1、va_list、va_start、vsnprintf、va_end的使用方法和实例

#include <stdarg.h>
void test_char(const char* format, ...){
    char buf[512];

    va_list args;
    va_start(args, format);
    vsnprintf(buf, sizeof(buf), format, args);
    va_end(args);

    if (strlen(buf) >= sizeof(buf) - 1) {
        printf("buffer may have been truncated \n");
    }
    printf("%s \n",buf);
}
int main()
{
    char test1[5]="is";
    char test2[5]="char";
    char test3[5]="test";
    int testint = 5;
    test_char("This %s %s %s %d",test1,test2,test3,testint);
}


你可能感兴趣的:(va_end,va_start,va_list,vsnprint)