外部引用变量显示未定义
extern unsigned long arr;unsigned long linearization(void)
{
unsigned long temp = 0; //中值温度电压
// 选择排序
for (int i = 0; i<5; i++) //ADCN是采集的数据的个数
{
int k = i;
for (int j = i+1; j<6; j++)
{
if (arr < arr)// arr是采集的数据
k = j;
}
if (k != i)
{
temp = arr;
arr = arr;
arr = temp;
}
}
temp = arr; //返回中值
return temp;
}
红色·是我引用的unsigned long得数组 但是错误显示说我未定义 这是为啥啊
extern unsigned long arr;
这一句只是声明,并未定义 arr
你要在作用域内单独定义一遍
unsigned long arr;
C++ 的声明和定义是不一样的。 °蓝鲤歌蓝 发表于 2021-1-23 00:38
这一句只是声明,并未定义 arr
你要在作用域内单独定义一遍
我是IAR 用的C语言啊 °蓝鲤歌蓝 发表于 2021-1-23 00:38
这一句只是声明,并未定义 arr
你要在作用域内单独定义一遍
那要是重新定义的话不会对之前的变量有影响吗就是里面的数 我爱Cyinyinyin 发表于 2021-1-23 00:44
那要是重新定义的话不会对之前的变量有影响吗就是里面的数
你里面都没数啊,怎么会有影响呢?
如果里面有数的话就说明 已经定义而且初始化了,就不会报这个错了。
你现在报这个错就是因为 你只声明了这个变量而已。
声明是不会给 变量 分配内存的,只有 定义 的时候才会分配内存。 本帖最后由 jackz007 于 2021-1-23 00:54 编辑
extern unsigned long arr;
如果一个程序同时使用多个代码文件,你想使用在其它代码文件中定义的全局变量 arr 才会这样去声明,这样,代码文件在编译的时候不会报错,在连接的时候,如果在从其它代码文件编译出的 obj 中没有找到这个 arr ,就会报错。 jackz007 发表于 2021-1-23 00:53
如果一个程序同时使用多个代码文件,你想使用在其它代码文件中定义的全局变量 arr 才会这样去声 ...
那我是需要这个程序运行起来arr里面才会有值怎么办,做的传感器
页:
[1]