我有这些方法:
/// PRIVATE
template <class T> void Setting::saveData(___uint16 address, const T &value)
{
T *pValue = (T*)&value;
this->pStorage->write(address, (void *)pValue, sizeof(value));
}
/// PUBLIC
void Setting::saveCoordinatorAddr(const ___uint8 *pAddr)
{
saveData(ADDR_COORDINATOR_ADDR, **XXXX**);
}
saveCoordinatorAddr()方法用于保存表定义如下:
___uint8 CoordinatorAddr[8];
那么,我该怎么写 XXXX (例如:saveData(ADDR_COORDINATOR_ADDR,pAddr);)?
谢谢你们
答案 0 :(得分:1)
变化:
/// PUBLIC
void Setting::saveCoordinatorAddr(const ___uint8 *pAddr)
{
saveData(ADDR_COORDINATOR_ADDR, **XXXX**);
}
要:
/// PUBLIC
void Setting::saveCoordinatorAddr(const ___uint8 (&pAddr)[8])
{
saveData(ADDR_COORDINATOR_ADDR, pAddr);
}
这意味着推导出的T具有与所需尺寸相匹配的正确类型。