C中的外部变量

时间:2013-12-03 16:25:29

标签: c

我在使程序范围的全局变量和函数工作时遇到了很大的麻烦。我已经尝试在.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中定义全局变量?

1 个答案:

答案 0 :(得分:9)

你可能编译错了,因为它看起来不错。在编译多个源时,您需要执行

gcc main.c glob.c -o program

或单独编译然后链接

gcc -c main.c
gcc -c glob.c
gcc main.o glob.o -o program