用static聲明外部變量與內、外部函數


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對函數作聲明,表示該函數是在其他文件中定義的外部函數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM