當然可以啦。
專注于為中小企業(yè)提供做網(wǎng)站、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)玉泉免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
舉個例子吧:兩個文件 main.c function.c
我們在function.c 中寫一個函數(shù) func();
與此同時,我們需要寫一個.h文件來聲明這個函數(shù),即function.h
// 以下是function.h 的內(nèi)容
#ifndef __FUNCTION_H__
#define __FUNCTION_H__
void func();
#endif
// 以下是function.c 的內(nèi)容
#include "function.h"
void func()
{
// do something
}
這樣一來,我們想要在另外一個文件,也就是main.c 中調(diào)用這個函數(shù)的時候,只需要包含它對應的頭文件,就可以直接調(diào)用了。
// 以下是main.c 的內(nèi)容
#include "stdio.h"
#include "function.h"
int main()
{
func();
return 0;
}
C語言可以在程序中調(diào)用其他文件中的函數(shù)。
在大型的程序軟件開發(fā)中,為了代碼的可讀性,或多人同時進行代碼開發(fā),可以各寫自己的源文件,然后,在編譯時,將多個源文件鏈接到一起,就可以形成最終的目標程序。
各程序中的函數(shù)可以是共用的,參考代碼如下:
//a.c
#include stdio.h
int funa( int n )
{
printf("n=%d\n", n );
return n*2 ;
}
//main.c
#include stdio.h
extern int funa(int); //聲明funa為外部函數(shù)
void main()
{
int x=5,y;
y=funa(x);
printf("y=%d\n", y );
}
在linux下,編譯方法為:gcc main.c a.c -o test
在windows下,可建立一個工程,將兩個文件添加到該工程中,編譯,運行即可
不能,C語言中的static函數(shù),內(nèi)部函數(shù)和外部函數(shù),函數(shù)一旦定義后就可被其它函數(shù)調(diào)用。
當一個源程序由多個源文件組成時,在一個源文件中定義的函數(shù)能否被其它源文件中的函數(shù)調(diào)用,C語言又把函數(shù)分為兩類。
如果在一個源文件中定義的函數(shù)只能被本文件中的函數(shù)調(diào)用,而不能被同一源程序其它文件中的函數(shù)調(diào)用, ? 這種函數(shù)稱為內(nèi)部函數(shù)。
內(nèi)部函數(shù)也稱為靜態(tài)函數(shù),但此處靜態(tài)static 的含義已不是指存儲方式,而是指對函數(shù)的調(diào)用范圍只局限于本文件。
外部函數(shù)在整個源程序中都有效,其定義的一般形式為extern ? 類型說明符 ? 函數(shù)名形參表。
C語言中static函數(shù),只能被本文件中的函數(shù)所使用,別的c文件中不能訪問這個函數(shù),而且你可以在別的文件中定義與之同名的函數(shù),不會互相干擾。
無法
前提 兩種語言生成的庫是無法直接互相調(diào)用的,原因在于c++支持重載,因此存在改名機制(也可能是因為有改名機制所以支持重載 ==!)_,即生成的中間文件會對函數(shù)名進行改寫,會將函數(shù)名與參數(shù)列表相結(jié)合生產(chǎn)新的函數(shù)名