1、用static声明外部变量
若希望某些外部变量只限于被本文件引用,而不能被其他文件引用,可以在定义外部变量时加一个static声明。
例:(file1.c)
#include <stdafx.h> #include<stdio.h> void main() { int power(int); int b=3,c,d,n; printf("enter the number a and its power n:\n"); scanf("%d%d",&A,&n); c=A=b; printf("%d*%d=%d\n",A,b,c); d=power(n); printf("%d^%d=%d\n",A,n,d); }
(file2.c)
#include <stdafx.h> #include<stdio.h> extern A; int power(int n) { int i,y=1; for(i=1;i<=n;i++) { y*=A; } return(y) }
变量的声明和定义:
(1)声明部分出现的变量有两种情况:一种是需要建立存储空间的(如:int a;),另一种是不需要建立存储空间的(如:extern a;)。
(2)广义地说,声明包括定义,但并非所有的声明都是定义。
2、内部函数和外部函数
函数本质上是全局的,因为一个函数要被另一个函数调用,但是也可指定函数不能被其他文件调用。
根据函数能否被其它源文件调用,将函数分为内部函数和外部函数。
定义内部函数时,在函数名和函数类型前面加static。
即:static 类型标识符 函数名 (形参表)
如:static int fun(int a,int b);
(1)在定义函数时,如果在函数的最左端加关键字extern,则表示此函数是外部函数,可供其他文件调用。若在定义函数时省略extern,则默认为外部函数。
(2)在需要调用此函数的文件中,用extern对函数作声明,表示该函数是在其他文件中定义的外部函数。