1、应用场景:当传入一个数据的地址,需要返回的数据为一个不确定类型数据时,可以使用空指针的用法(void*)
2、实例演示:
/**
* @brief 输出类型枚举
* @member UNSIGNED_SHORT
* @member SHORT
*/
typedef enum {
UNSIGNED_SHORT = 1,
SHORT = 2,
}OutputType;
/**
* @brief 提取数据
* @param[in] input_value:存储输入参数的指针
* @param[in] output_value:存储输出参数的指针
* @param[in] output_type:存储输出参数指针的类型 // 类型查看OutputType枚举
* @retval 无
* @author Lin Gui Xin
* @time 2024.07.12
* @log 无
*/
void Data_Extraction(unsigned char *input_value, void *output_value,OutputType output_type)
{
/* 判断输出指针不为空 */
if(output_value)
{
/* 如果输出参数的指针类型为(unsigned short*) */
if(output_type == UNSIGNED_SHORT)
{
*(unsigned short*)output_value = (unsigned short)((input_value[1] << 8) | input_value[0]);
}
/* 如果输出参数的指针类型为(short*) */
else if(output_type == SHORT)
{
*(short*)output_value = (short)((input_value[1] << 8) | input_value[0]);
}
}
}