【发布时间】:2018-09-10 12:21:29
【问题描述】:
我有一个返回数组Data 的函数。数组的类型是int 或float。我想使用void 指针。如果 outputType 为 0,则 Data 将指向整数数组,否则将指向浮点数组。
是否可以在 C 中执行此操作?
void getData(void *Data , uint8_t outputType)
{
...
int16_t acc[3]={0,0,0};
...
acc[0] = (int16_t) ((data[1]*256+data[0]));
acc[1] = (int16_t) ((data[3]*256+data[2]));
acc[2] = (int16_t) ((data[5]*256+data[4]));
Data = acc;
}
在主代码中:
int16_t output[3];
getData(output, 0);
【问题讨论】:
-
函数怎么调用?
-
你需要多一层间接性
-
你当然不能返回本地数组的地址。当您的函数返回时,该数据将无效。