码迷,mamicode.com
首页 > 其他好文 > 详细

外部变量

时间:2018-06-10 23:07:28      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:空间   保存   一维数组   引用   UNC   程序   include   全局   分解   

  1. 外部变量也就是全局变量,是在所有函数(包括主函数 main)之外定义的变量。
  2. 在单文件程序中,全局变量的作用域是所在源程序文件。
  3. 在多文件程序中,如果希望全局变量的作用域仍只限于所在源程序文件,而不能被其他源程序文件引用,则称为静态全局变量,在定义静态全局变量时须加上关键字static;
  4. 如果希望将全局变量的作用域扩展到其他源程序文件,则称为外部变量,

    如果文件A要引用文件B中定义的外部变量,则在文件A中用关键字extern声明该外部变量,即可将该外部变量的作用域扩展到文件A中。

extern int count; //声明外部变量count
extern int data[ ]; //声明外部数组data,无须指明数组长度


关键字extern提示编译程序变量count是在其他源程序文件中定义的,因此不需要为变量count分配存储空间,只是该源程序可以访问变量count。
由于外部变量声明不进行内存分配,因此,声明外部数组无须指明数组长度。


例子:利用外部变量求两个一维数组元素的累加和。

想法:设全局变量sum保存数组元素的累加和,则两个数组的元素之和要累加到同一个变量sum上,可以将程序分解为1个头文件和2个源程序文件,头文件func.h中存放求和函数Sum的函数原型,源程序文件sum.cpp完成函数Sum的定义,在源程序文件sum.cpp中要引用源程序文件func.cpp中定义的全局变量sum ,因此,需要声明该外部变量,程序如下:

/* func.h */    自定义头文件 
void Sum(int r[ ], int n); 

 

/* sum.cpp */   源程序文件 
extern int sum;  // 定义外部变量
void Sum(int r[ ], int n)
{
for (int i = 0; i < n; i++)
sum = sum + r[i];
return;
}

 

主函数执行源程序文件
#include <stdio.h>
#include "func.h"
int sum = 0;

int main( )
{
int a[5] = {1, 2, 3, 4, 5};
int b[10] = {1, 1, 1, 1, 1, 2, 2, 2, 2, 2};
Sum(a, 5);
Sum(b, 10);
printf("数组元素的累加和是:%d\n", sum);
return 0;
}

外部变量

标签:空间   保存   一维数组   引用   UNC   程序   include   全局   分解   

原文地址:https://www.cnblogs.com/hello-dummy/p/9164598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!