【发布时间】:2009-12-16 09:26:14
【问题描述】:
我正在编写一个 C 程序,它必须使用 2D 数组来存储先前处理的数据以供以后使用。
这个二维数组的大小为 33x33; matrix[33][33].
我把它定义为一个全局参数,所以它只会被初始化一次。当程序运行时,这个定义会花费很多时间吗?因为我发现我的程序在不使用这个矩阵来存储数据的情况下比以前的版本要慢。
补充:
我将这个矩阵初始化为一个全局参数,如下所示:
int map[33][33];
- 在函数 A 之一中,我需要将所有 33x33 数据存储到此矩阵中。
- 在另一个函数 B 中,我将从 map[33][33] 中获取 3x3 小矩阵以进行下一步处理。
以上 2 个步骤将重复大约 8000 次。那么,会不会影响程序运行效率呢?
或者,我有另一种猜测,因为最近在程序中添加了几个 if-else 分支语句,所以程序运行得更慢了。
【问题讨论】:
-
不,不应该,但如果没有更多代码,很难为您提供帮助。
-
像这样分配内存几乎不需要时间。尝试使用分析器查看所有 CPU 时间都花在了哪里。