在c中的静态库中定义值

define value in static library in c

我在 c 中有一个静态库 (array.a),其中包含如下代码:

int array[ARRAY_LENGTH];

ARRAY_LENGTHCFG.c 中定义如下:

#define ARRAY_LENGTH 10

我的问题是,如果我更改 CFG.c 并将 ARRAY_LENGTH 设置为 20,那么我的应用程序中会有 array[20],或者它仍然是 array[10] ?我该如何更改?

链接库中的数组将具有链接时的大小。在不重新链接的情况下更改源不会神奇地改变库中的大小。

一般提供一个.h文件和一个或多个.c文件。 .c 文件成为 lib,.h 文件包含所有需要的信息。将数组放在一个 .c 文件中并在另一个 .c 文件中声明其大小是没有意义的。