我正在尝试找出定义具有固定大小的全局数组的最佳方式,以下是我找到的选项,每个选项都有其自身的缺陷。
// 1:
#define ASIZE 10
int array[ASIZE];
// 2:
enum {ASIZE = 10};
int array[ASIZE];
// 3:
#define ASIZE_DEF 10
static const int ASIZE = ASIZE_DEF;
int array[ASIZE_DEF];
第一种和第二种方法的问题在于我无法从 GDB 中获取 ASIZE 的值。我猜第三种选项是最好的,因为我仍然可以转储 const 的值,但它也会泄漏另一个宏。我可以在定义数组和 const 后取消定义宏,但如果 #define 和 const 在与数组声明不同的文件中,则会变得有些棘手。
有更好的方法吗?
static
变量只会带来“未使用的变量”警告,对吧? - Jens Gustedt