1,代码实现:
#include<stdio.h>
#include<stdint.h>
#define LASER_FAIL 0
#define LASER_OK 1
uint32_t fhapp_laser_logic_on()
{
uint32_t p_data = 1;
return p_data;
}
uint8_t fhapp_laser_on(uint32_t* p_value)
{
uint32_t r_value;
if(p_value == NULL)
{
return LASER_FAIL;
}
else
{
r_value = fhapp_laser_logic_on();
*p_value = r_value;
}
return LASER_OK;
}
int main()
{
uint8_t ok ;
uint8_t a ;
ok = fhapp_laser_on(&a);
if(ok == LASER_OK)
printf("a=%d\n",a);
else
return -1;
return 0;
}
运行结果如下:
代码分析:栈溢出表明有定义的数据类型之间传递有问题:我们跟踪代码从main->fhapp_laser_on->