我想创建一个可以修改静态数组的最后一个元素的函数,但它可以处理不同类型的数据(int16_t、uint16_t和float)
我已经设法让它在不同的函数中为每一种数据工作。我想设计一个单一的函数,可以处理每一种数据。
下面是float元素的代码片段。
void fifo_datas_update_float(float data_in, float *datas, uint8_t size)
{
datas[size-1] = data_in; //assign new value to last element
}
const uint8_t dtsize = 3;
static float datas_fake[dtsize] = {10,20,30};
float new_value = 40;
fifo_datas_update_float(new_value, datas_fake, dtsize);
字符串
任何帮助都将不胜感激。
3条答案
按热度按时间oknwwptz1#
正如some_programmer_dude在评论中所说,你可以像下面这样使用
_Generic
(从C 2011开始)。(void *)
。*字符串
请参阅https://ideone.com/aAqvTU
上面代码的输出是
型
zxlwwiss2#
您可以使用以下命令:
字符串
但是这并不能比直接调用
memcpy
节省保存任何东西。型
u0sqgete3#
要建立在@pmg的答案上,你可以用途:
字符串
以避免重复。