c - 我如何必须使用外部变量?
问题描述
我在使用外部变量时遇到了一些问题。这是我第一次使用它,所以我不知道它是如何工作的。我有这个代码:
#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 没有定义。那么,有人可以帮助我吗?
解决方案
extern double *x, *y, a;
extern unsigned int N;
extern
全局空间变量的限定符告诉编译器/链接器相应的变量是在另一个预处理翻译单元(另一个源文件)中定义的,而不是实际的。
您没有其他源文件,因此编译器无法在任何地方找到变量的定义。因此,它会发出适当的警告。
如果您没有多个源文件,则不需要使用限定符extern
by *x
、*y
和. 删除它们。a
N
看看这里:
推荐阅读
- python - 如何在 PyQt5 中相对于父窗口移动子窗口?
- string - 如何检查字符串飞镖中是否存在任何日期
- c - 从父进程读取子进程的写入
- html - 模态中的引导轮播显示不止一张幻灯片
- vue.js - Display a component within an i18n text in Vue.js
- python - 查找多项式函数 Python Sympy 的根
- magento - Magento 2.3 上的登录模块
- python - Matplotlib 动画未按预期绘制线条
- azure-active-directory - 使用服务主体的 Power BI REST API - 错误 401 未经授权
- multithreading - 如何在@threads 中“锁定”变量?