调用全局变量会导致.c文件中定义的函数出错

时间:2016-07-26 19:02:04

标签: c function header global-variables global

在C程序中,当我在main.c文件中定义了一组全局变量时,如何在不同.c文件中定义的函数中使用它们的值?例如,使用 gcc -o my_prog main.c foo.c 编译时,以下文件会引发以下错误:

foo.c: In function ‘foo’:
foo.c:5:9: error: ‘b’ undeclared (first use in this function)

的main.c

#include <stdio.h>
#include "foo.h" 

int b=4;

int main(void)
{
    int y = foo(3);  /* Use the function here */
    printf("%d\n", y);
    return 0;
}

foo.c的

#include "foo.h"  

int foo(int x)    /* Function definition */
{
    return x + b;
}

foo.h中

#ifndef FOO_H_   /* Include guard */
#define FOO_H_

int foo(int x);  /* An example function declaration */

#endif // FOO_H_

我们如何解决这个问题?

0 个答案:

没有答案