我目前正在重构一个旧程序,但我找不到优化某段代码的方法。
主要目标是在嵌入系统时降低内存使用率。
for(n = 0; n < NUMBER_VARS_IN_STRUCT1; n++) {
int m;
for(m = 0; m < NUMBER_OF_LANGUAGES; m++) {
UnicodeStrCat(2, tx_data_1, struct1.var1[n][m], L"\r\n");
SendSerialUserData(UNICODE);
}
for(m = 0; m < 4; m++) {
sprintf(ansicode_text, "%.8f\r\n", (double) struct1.var2[n][m]);
StrAnsiToUnicode(tx_data_1, ansicode_text);
SendSerialUserData(UNICODE);
}
for(m = 0; m < 4; m++) {
sprintf(ansicode_text, "%.8f\r\n", (double) struct1.var3[n][m]);
StrAnsiToUnicode(tx_data_1, ansicode_text);
SendSerialUserData(UNICODE);
}
代码要长得多(约250行相同的东西),然后以类似的方式重复,以允许将数据读回设备。
我原以为减少内存使用量的解决方案是对数组进行硬编码以保存指向每个结构中每个数组值的指针(或者如果我知道每个数组的大小,那么我可以增加指针位置) ,然后通过简单地循环来减少代码大小。
该功能的输出是通过串行总线打印出一个大型数据表。
提前感谢您的任何帮助