Почему при первом вызове функции va_arg получается странный номер? - PullRequest
0 голосов
/ 20 марта 2020

Я разрабатываю прошивку для моей платы STM32 на основе процессора STM32F412RET6 с STM32CubeIde и FREERTOS. Когда я вызываю функцию va_arg из библиотеки stdarg.h, впервые получаю странное число. Почему?

Код:

void readFloat(int n, ...){
    int val;
    va_list vl;
    va_start(vl,n);

    for (int i=0;i<n;i++)
    {
        val=va_arg(vl,int);
    }

    va_end(vl);
}

/**
  * @brief  Function implementing the defaultTask thread.
  * @param  argument: Not used 
  * @retval None
  */
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument)
{     
    readFloat(3, 1, 2, 3);
    for(;;)
    {
        osDelay(1);
    }
    /* USER CODE END 5 */ 
}

Результат отладки:

enter image description here

...