C++中关于内部与外部函数
1》如果一個函數只能被本文件中其他函數所調用 ,它稱為內部函數,又稱為靜態(static)函數。
內部函數首部的一般形式為:
static 類型標識符? 函數史(形參表)
static??? ?int???????????? func????? (int a, int b)
可以使內部函數只局限于所在的文件內。
如果在不同的文件中有同名的內部函數,互不干擾。這樣不同的人可以分別編寫不同的函數,而不用擔心所用的函數是否會與其他文件中的函數重名。
2》如果在函數首部的最左端以關鍵字 extern(可以省略) ,則表示此函數是外部函數,可供其他文件調用 。
外部函數首部的一般形式為:
extern??類型標識符? 函數史(形參表)
extern???? int?????????????? func??? (int a ,int b )
注意:如果在定義函數時省略extern,則默認為外部函數。
3-1》file1.cpp
#include<iostream>
using namespace std;
int main ()
{
?????? extern int max(int a,int b);//聲明在本函數將要調用在其他文件中定義的max函數
???? int a,b;
???? a=10;
???? b=20;
???? cout<<max(a,b)<<endl;
??? ?return 0;
}
3-2》file2.cpp
extern int max(int a,int b)
{
????? return a>b?a:b;
}
???
使用此例可知:使用extern 聲明就可以在一個文件中調用其他文件中的定義的外部函數了。
利用函數原型擴展函數作用域最常見的例子是#include指令。
例如,在程序中需要調用sin函數,但是三角函數并不是由用戶在本文件中定義的,而是存放在數學函數庫中的。按以上的介紹,必須在本文件中寫出sin函數的原型,否則無法調用sin函數。
sin函數的原型是:
double sin(double x);
本來應該由程序設計者在調用庫函數時先從手冊中查出所用的庫函數的原型,并在程序中一一寫出來,但是這樣顯然是麻煩而困難的。為了減少程序設計都的困難,在頭文件cmath中包括了所有的數學函數的原型和其他有關信息,用戶只須用以下#include指令:
#include<cmath>
即可。這時,在該文件中就能合法地調用 各數學庫函數了。
詳見:C++程序設計(第二版) P123-P125
總結
以上是生活随笔為你收集整理的C++中关于内部与外部函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android studio编译好的ap
- 下一篇: mac 下启动Android Studi