您需要在.h文件中声明它
extern char cmdval[128];
然后在first.c中定义值;
char cmdval[128];
然后,包含.h文件的任何东西,只要它与first.o链接就可以访问它.
要详细说明,“extern”说,有一个外部变量,这将引用…如果你没有在某个地方声明cmdval,cmdval将永远不存在,而外部引用将永远不会引用任何东西.
例:
global.h:
extern char cmdval[128];
first.c:
#include "global.h"
char cmdval[128];
int main() {
strcpy(cmdval, "testing");
test();
}
second.c:
#include "global.h"
void test() {
printf("%s\n", cmdval);
}
您可以使用以下方式进行编译:
gcc first.c second.c -o main
或首先使.o文件链接
gcc -c first.c -o first.o
gcc -c second.c -o second.o
gcc first.o second.o -o main