首页 > 解决方案 > 为什么第一次调用 va_arg 函数得到一个奇怪的数字?

问题描述

我正在为我的 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 */ 
}

调试结果:

在此处输入图像描述

标签: cembeddedstm32f4stm32cubemx

解决方案


推荐阅读