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.