假设我有一个每秒调用 10 次的函数,例如:
void RxData(System::Byte *Data){}
在这个函数中,我想用 *Data 填充一个结构,结构如下:
Struct datastr{
float first;
float second;
}
就性能和内存使用而言,最好声明一个外部变量datastr str1
,然后执行:
void RxData(System::Byte *Data){str1=*reinterpret_cast<datastr*>(Data);}
或每次结构重新初始化,例如:
void RxData(System::Byte *Data){datastr str1; str1=*reinterpret_cast<datastr*>(Data);}
有人可以解释内存管理方面的区别吗?我倾向于认为第二种选择更“干净”,但我不能真正争论为什么。