0

va_start を使用して、省略記号から引数を取得したいと考えています。

これが私のコードです:

char str[256];
void nrf_log_flash(bool is_to_save, char * log, ...){
    va_list args;
    va_start(args, log);
    int ret = vsprintf(str, log, args);
    if(is_to_save){
         sprintf(str, "%s : %s\n", nrf_cal_get_time_string(false), log);
         //my_nrf_log_add(str, strlen(str));
    }
    NRF_LOG_INFO("%s", log);
    NRF_LOG_INFO("%s", str);
    NRF_LOG_INFO("%d", ret);
    va_end(args);

}

そして、ここに私の召命があります:

nrf_log_flash(true, "button %d pressed, %u, %x, %c", 2, 3658, 0xca, 'a');

しかし、私の va_list は空です。私は何を間違っていますか?

4

1 に答える 1