我在使程序范围的全局变量和函数工作时遇到了很大的麻烦。我已经尝试在.c文件中定义我的函数/变量,然后在标题中声明它们(在变量的情况下使用extern关键字),但VC和GCC都给出了未解析的符号/未定义的引用错误。例如:
glob.c
#include "glob.h"
int i = 5;
char get_letter()
{
return 'A';
}
glob.h
#ifndef GLOB_H
#define GLOB_H
extern int i;
char get_letter();
#endif
的main.c
#include <stdio.h>
#include "glob.h"
int main()
{
printf("%u\t%c\n", i, get_letter());
}
这让人觉得多余,但在我看来,我已经尝试过在现有资源中提供的解决方案,但仍然会出现错误。我应该如何一劳永逸地在C中定义全局变量?
答案 0 :(得分:9)
你可能编译错了,因为它看起来不错。在编译多个源时,您需要执行
gcc main.c glob.c -o program
或单独编译然后链接
gcc -c main.c
gcc -c glob.c
gcc main.o glob.o -o program