stdarg.h и обертка над printf
Сергей Гнедин
Решил сделать небольшую обертку над printf. Делаю это так:
#include <stdio.h>

#include <string.h>
#include <stdarg.h> void log(const char *format, ...)
{
   if(_log == true)
   {
       va_list ap;
       va_start(ap, format);
       if(strcmp(format, "%d") == 0)
       {
           int x = va_arg (ap, int);
           printf (format, x);
       }
       if(strcmp(format, "%s") == 0)
       {
           char *p = va_arg (ap, char *);
           printf (format, p);
       }
       if(!strcmp(format, "%s")&& !strcmp(format, "%d"))
       {
           printf (format);
       }
       va_end (ap);
   }
}

Но само собой появляются проблемы с двумя и более выводимыми переменными. Думаю, попробовать через strstr считать количество этих %s и %d. Но что-то мне кажется, что не все так гладко. Подскажите как это сделать?
Сергей Гнедин около 1 года назадСпасибо 0
0 чел.