Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 优化多个堆叠循环_C_Arrays_For Loop_Struct - Fatal编程技术网

C 优化多个堆叠循环

C 优化多个堆叠循环,c,arrays,for-loop,struct,C,Arrays,For Loop,Struct,我目前正在重构一个旧程序,在寻找优化某段代码的方法时遇到了麻烦 其主要目的是在嵌入系统时,降低内存使用率,而不是降低性能 for(n = 0; n < NUMBER_VARS_IN_STRUCT1; n++) { int m; for(m = 0; m < NUMBER_OF_LANGUAGES; m++) { UnicodeStrC

我目前正在重构一个旧程序,在寻找优化某段代码的方法时遇到了麻烦

其主要目的是在嵌入系统时,降低内存使用率,而不是降低性能

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);
                        }
for(n=0;n
代码要长得多(大约250行相同类型的代码),然后以类似的方式重复代码,以便将数据读回设备

我曾认为,减少内存使用的解决方案可能是对数组进行硬编码,以保存指向每个结构中每个数组值的指针(或者如果我知道每个数组的大小,那么我可以增加指针位置),然后通过简单地循环来大幅度减少代码大小

该功能的输出是通过串行总线打印出一个大的数据表


提前感谢您提供的任何帮助

您提出的解决方案对我来说很好。您想减少哪些内存,数据还是指令?我想减少数据内存,但我原以为使用const可以节省指令内存,而不会真正增加数据内存。