⑴ c語言中文件怎樣調用文件
lz是不是不知復道怎麼把多個制文件聯系在一起編譯運行啊!
首先修正一個樓上的錯誤。對於用戶自己寫的頭文件,應當用#include
「xx.h」
而不能用#include
<xx.h>。否則將會出錯。
lz在寫好這個頭文件後,比如你說的xx.h
只需要在你的源文件,也就是.c文件的開頭使用預處理命令#include
"xx.h"便可以將頭文件裡面的內容包含到你的.c文件了。
然後直接編譯,鏈接你的源文件(.c),然後生成生成.exe文件,便可以運行了。
lz注意嘍!一定要把你的頭文件和源文件放到同一個文件夾目錄下,才能正確運行嘍!
⑵ C語言中,是否可以調用其它文件的函數
可以的。
在C語言中,函數調用的方式有多種,在函數調用中還應該注意的一個問題是求值順序。所謂求值順序是指對實參列表中各個參數是自左向右使用,還是自右向左使用。對此,各系統的規定不一定相同。
__cdecl調用規則就是C調用規則。按從右至左的順序壓參數入棧,由調用者把參數彈出棧。切記:對於傳送參數的內存棧是由調用者來維護的。
返回值在EAX中因此,對於象printf這樣變參數的函數必須用這種規則。編譯器在編譯的時候對這種調用規則的函數生成修飾名的餓時候,僅在輸出函數名前加上一個下劃線前綴,格式為_functionname。
(2)c語言調用其他文件擴展閱讀
示例:
在VC6.0和C-Free 5.0下運行以下代碼。
#include <stdio.h>
int main(){
int i=8;
printf("%d %d %d %d
",++i,++i,--i,--i);
return 0;
}
運行結果:
8 7 6 7
可見VC 6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:
9 10 9 8
⑶ c語言怎麼調用dll文件
1、新建DLLTest文件夾,在該文件夾中新建source文件夾。
注意事項:
C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
⑷ C語言中,是否可以調用其它文件的函數
C語言可以在程序中調用其他文件中的函數。
在大型的程序軟體開發中,為了代碼的可讀性,或多人同時進行代碼開發,可以各寫自己的源文件,然後,在編譯時,將多個源文件鏈接到一起,就可以形成最終的目標程序。
各程序中的函數可以是共用的,參考代碼如下:
//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為外部函數
void main()
{
int x=5,y;
y=funa(x);
printf("y=%d\n", y );
}
在linux下,編譯方法為:gcc main.c a.c -o test
在windows下,可建立一個工程,將兩個文件添加到該工程中,編譯,運行即可
⑸ c語言調用其他文件的函數怎麼編譯
調用函數庫的話用#include<XXX.h>或者#include"XXX.h"區別是你庫文件放在同一個文件夾還是在IDE的安裝目錄下面,如果你庫文件在你工程文件夾裡面用#include<XXX.h>,否則用#include"XXX.h"
如果你說自己寫庫的話是需要兩個宏命令,#ifndef_XXX_H#define_XXX_H,然後你函數名用extern表示
如果你說編譯的話,你應該說的是編譯原理吧,你可以反匯編一下一個編譯好的程序,如果該處編譯了一個其他函數庫的函數,你可以看到程序把參數PUSH到內存後CALL或者LCALL了一個這個函數的地址,這就完成了匯編中調用函數的部分,我記得X86裡面CALL的機器碼是E8H吧,有興趣的話可以自己用反匯編看一下
這個CALL的話就是調用函數的功能
⑹ C語言中如何調用文本文件
1、首先使用VS新建空工程,直接點擊確定。
⑺ c語言中文件怎樣調用文件
擴展名為.h的文件,在C語言中被稱為header file, 也就是頭文件。
頭文件的數據格式就是普通的文本文件,可以通過新建文本文件(txt),再把擴展名改為.h的方式創建,在此不贅述。
一、頭文件內容格式。
頭文件內容並沒有固定的格式要求,不過一般為防止嵌套引用給編譯器帶來死鎖或者沒必要的開銷,一般約定整個頭文件中所有內容在一個條件編譯下,即如下格式:
#ifndef 宏名
#define 宏名
//頭文件主體
#endif
這樣可以保證一個頭文件在一個源文件中最多隻被引用一次。為避免宏名重復,宏名一般由頭文件名轉換而來,如果頭文件名是xxx.h,那麼宏名一般定義為:
_XXX_H_
即前後各加一個下劃線,同時文件名中除數字、字母、下劃線以外的字元均轉換為下劃線(_)。
頭文件主體中內容同樣沒有做強制約定,可以出現在源文件(.c)中的任何代碼均可以放在頭文件中。不過一般情況下可以包括以下幾種內容:
1 引用其它頭文件,格式為
#include <xxx.h>
或
#include "xxx.h"
二者區別在介紹頭文件引用時再詳細介紹。
2 定義私有類型。比如
typedef unsigned long U32; //為了簡寫而給無符號32位整型定義一個新的名字
struct xxx {};
也可以是enum, union等復雜類型。
3 宏定義。比如
#define MAX(a,b) (a>b?a:b)
4 函數聲明。比如
void test_function(void);
5 全局變數聲明。比如
extern int global_var;
6 如果有一個靜態全局變數需要在不同源文件中使用,但各文件之間互不相關。那麼可以放在頭文件中。如:
static int gs_var = 3;
7 對於支持C99規范的C編譯器,還可以把內聯函數定義在頭文件中。比如
static inline int get_min(int a, int b)
{
if(a>b) return b;
return a;
}
以上是常見的頭文件中的元素。但實際上頭文件中也可以放全局變數的定義,全局函數的實現等。但是頭文件中一旦定義了這樣的元素,這個頭文件在一個工程中只能被一個文件引用,否則編譯器會報重復定義的錯誤。
比如如果有一個規模很大的常量數組,比如一副圖片的二進制值,如果把它定義在源文件中,就會顯得很冗餘,因為並不會經常修改。 這時可以定義在頭文件中,只在一個源文件中引用,當有多幅圖片需要隨時更換時,也可以通過簡單的在源文件中修改引用的頭文件名達到修改的目的。
二、頭文件的引用。
頭文件引用的方法其實之前已經大致說過了,在源文件中引用頭文件和在頭文件中引用的格式是一樣的:
#include<xxx.h>或者
#include "xxx.h"
xxx為頭文件名。
用<>和""是有一定的區別的。在編譯器查找頭文件的時候,會在兩個區域分別查找。
一個是系統頭文件區域,即類似於stdio.h一類的C庫函數頭文件區。
另一個是自定義頭文件區,比如當前目錄,以及其它自定義的目錄。
用<>時,編譯器會先在系統區域查找,然後再查找自定義區域。而用""時則相反。
由於一般並不推薦自定義頭文件名與系統頭文件名相同(容易引起歧義並難以維護),所以先後順序並不是太重要,尤其在硬體速度越來越快的今天,使用哪種符號引用頭文件已經差別很小了。
⑻ C程序怎樣調用其它文件里的函數
以Linux下的gcc為例:從C程序主函數main.c中調用另一個文件fun.c里函數的方法1.直接編譯 gcc main.c fun.c2.在main.c文件內容開頭添加 #include 「fun.c」 然後 gcc main.c3.在main.c 文件內容開頭添加 #include 「fun.h」 然後 gcc main.c fun.c4.在main.c 文件內容開頭添加 #include <fun.h>(此時fun是庫函數) 然後gcc main.c
⑼ C語言中,其他文件可否調用文件中的static函數
不能,C語言中的static函數,內部函數和外部函數,函數一旦定義後就可被其它函數調用。