首页 > 解决方案 > 我如何必须使用外部变量?

问题描述

我在使用外部变量时遇到了一些问题。这是我第一次使用它,所以我不知道它是如何工作的。我有这个代码:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

extern double *x, *y, a;
extern unsigned int N;

inline void f1 ()
{
    int i;

    for (i=0; i<N; i++)
    {
        y[i] = a*x[i] + y[i];
    }
}

我在编译它时得到的错误是 x,y,a 和 N 没有定义。那么,有人可以帮助我吗?

标签: c

解决方案


extern double *x, *y, a;
extern unsigned int N;

extern全局空间变量的限定符告诉编译器/链接器相应的变量是在另一个预处理翻译单元(另一个源文件)中定义的,而不是实际的。

您没有其他源文件,因此编译器无法在任何地方找到变量的定义。因此,它会发出适当的警告。

如果您没有多个源文件,则不需要使用限定符externby *x*y和. 删除它们。aN


看看这里:

如何使用 extern 在源文件之间共享变量?


推荐阅读