C编译出现这样的警告:returning pointer to local variable

    typedef const struct PWM_Interf{

        void (*PWM_GpionInit)(void);
        void (*PWM_TimerInit)(void);
        void (*PWM_RunPattern)(TEST_PATTERN *p_test_pattern);

    }PWM_Interf;

    PWM_Interf *PWM_GetInterf(void)
    {
        const PWM_Interf pwm_interface ={
            PWM_GpioInit,
            PWM_TimerInit,
            PWM_RunPattern,
        };

        return &pwm_interface;
    }

编译这段代码出现警告信息:returning pointer to local variable

这是为什么呢?


When returning a pointer from a function, do not return a pointer that points to a value that is local to the function or that is a pointer to a function argument. Pointers to local variables become invalid when the function exits. In the above function, the value returned points to a static variable. Returning a pointer to dynamically allocated memory is also valid.

你可能感兴趣的:(STM32)