• Как правильно использовать библиотеку stdarg.h на языке С и работает ли она с WSL?

    @COUT_man Автор вопроса
    Огромное спасибо! Ваш ответ подсказал как правильно работать с библиотекой stdarg.h.
    смог реализовать код в интересующем формате через передачу аргументов. Честно даже не задумывался о том что данные уже должны быть на стеке и упорно пологал что могу сформировать ввод через main но как оказалось я глубоко ошибался. Спасибо Вам!!! :
    spoiler
    #include <stdio.h>
    #include <stdarg.h>
    
    int test(char *fmt, ...)
    {
        va_list ap;
        char c;
    	char *s;
    
    	c = *fmt;
        va_start(ap, fmt);
        while (1)
        {
    		if (c == 'c')
        	{
    			printf("make c\n");
    			c = (char)va_arg(ap, int);
        		printf("%c\n", c);
    			break ;
    		}
    		if (c == 's')
        	{
    			printf("make s\n");
    			s = va_arg(ap, char *);
        		printf("%s\n", s);
    			break ;
    		}
    		printf("not eat!\n");
    		break ;
    	}
        va_end(ap);
        return (0);
    }
    
    int main(int argc, char **argv)
    {
    	test(argv[1], argv[2]);
    }