當前位置:首頁 » 編程語言 » c語言調用外部文件的方法是
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言調用外部文件的方法是

發布時間: 2022-12-31 22:37:08

A. 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下,可建立一個工程,將兩個文件添加到該工程中,編譯,運行即可

B. 如何在C語言中調用exe文件

在C語言中調用exe文件,可以使用system函數。
1、函數聲明:
int system(const char *cmd);
2、頭文件:
stdlib.h
3、函數功能:
調用cmd中包含的系統命令。要執行exe文件,直接cmd賦值該exe文件的文件名即可。可以包含相對路徑或者絕對路徑。
4 示例代碼:
如在D:\A\下存在有my.exe文件。當前C程序可執行文件位於D:\B文件夾下。
那麼調用my.exe可以使用
system("d:\\A\\my.exe");
也可以使用
system("..\\A\\my.exe");
如果my.exe就在D:\B下,那麼可以直接
system("my.exe");

C. C語言中如何調用文本文件

1、首先使用VS新建空工程,直接點擊確定。

D. 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庫函數頭文件區。
另一個是自定義頭文件區,比如當前目錄,以及其它自定義的目錄。
用<>時,編譯器會先在系統區域查找,然後再查找自定義區域。而用""時則相反。
由於一般並不推薦自定義頭文件名與系統頭文件名相同(容易引起歧義並難以維護),所以先後順序並不是太重要,尤其在硬體速度越來越快的今天,使用哪種符號引用頭文件已經差別很小了。

E. c語言怎麼調用dll文件

1、新建DLLTest文件夾,在該文件夾中新建source文件夾。

注意事項:

C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

F. 怎樣在c程序裡面調用其他程序

C++和C是兩種完全不同的編譯鏈接處理方式,如果直接在C++裡面調用C函數,會找不到函數體,報鏈接錯誤。要解決這個問題,就要在 C++文件裡面顯示聲明一下哪些函數是C寫的,要用C的方式來處理。
1.引用頭文件前需要加上 extern 「C」,如果引用多個,那麼就如下所示
extern 「C」
{
#include 「 s.h」
#include 「t.h」
#include 「g.h」
#include 「j.h」
};
然後在調用這些函數之前,需要將函數也全部聲明一遍。
2.C++調用C函數的方法,將用到的函數全部重新聲明一遍
extern 「C」
{
extern void A_app(int);
extern void B_app(int);
extern void C_app(int);
extern void D_app(int);
}
C++程序中調用被c編譯器編譯後的函數,為什麼要加extern "C"?
C++語言支持函數重載,C語言不支持函數重載。函數被C++編譯後在庫中的名字與C語言的不同。假設某個C 函數的聲明如下:
void foo(int x, int y);
該函數被C 編譯器編譯後在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字用來支持函數重載和類型安全連接。由於編譯後的名字不同,C++程序不能直接調用C 函數。C++提供了一個C 連接交換指定符號extern「C」來解決這個問題。例如:
extern 「C」
{
void foo(int x, int y);
// 其它函數
}
或者寫成
extern 「C」
{
#include 「myheader.h」
// 其它C 頭文件
}
這就告訴C++編譯譯器,函數 foo 是個C 連接,應該到庫中找名字_foo 而不是找_foo_int_int。C++編譯器開發商已經對C 標准庫的頭文件作了extern「C」處理,所以我們可以用#include 直接引用這些頭文件。

G. C語言中怎麼調用外部函數

1、外部函數extern時聲明這個函數為外部函數,本文件不做定義,只調用,編譯不會出錯,但不能運行(沒有函數實體)。如果想有運行結果就必須將函數實體包含進來,所以文件包含和extern是配合使用的。文件包含只需要包含.h就是實體的頭文件,但有些軟體貌似不能識別頭文件和c的關系,所以就只能包含.c文件。
2、也就是說外部函數extern只是個聲明,他告訴編譯器我用到了一個外部函數,但如果該文件沒有將函數實體包含進來,編譯器是找不到的,依然是不能運行的,所以extern只是個聲明,並沒有做任何事,只是這樣是沒用的。include是包含一個文件,就是類似於該文件復制到此處(只是說類似,其實是個查找路徑,讓編譯器去該路徑查找函數)。

H. c語言中文件怎樣調用文件

在文件最前面使用#include可以調用文件。例如
#include
<stdio.h>
/*調用系統stdio.h*/
#include
"test.h"
/*調用用戶自定義文件test.h*/
被調用的文件多是.h文件,即頭文件。當然也可以是.c文件,即c語言源文件,但一般不推薦使用這種方式。

I. 怎麼調用外部C語言文件

解決什麼了,你現在代碼的問題還很多。
file1.c中的內容:
#include<file2.c>//這樣你以後寫程序還會出錯。要建個h頭文件,把函數聲明放到裡面就行。
int
A;
main()//沒類型可以運行嗎。用void
main
{
int
power(int);//這個聲明放到頭文件里
int
b=3,a,c,d,m;
printf("enter
the
number
a
and
its
power
m:\n");
scanf("%d,%d",&a,&m);//你輸入的不是A,是a.。。。
c=A*b;//c的值是0
printf("%d*%d=%d\n",A,b,c);//由於A是全局變數,值默認為0。
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的內容:
extern
A;//類型要帶上,extern
int
A;
power(int
n);
{
int
i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
file1.c中的內容:
#include<file2.c>
int
A;
main()
{
int
power(int);
int
b=3,a,c,d,m;
printf("enter
the
number
a
and
its
power
m:\n");
scanf("%d,%d",&a,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的內容:
extern
A;
power(int
n);
{
int
i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}

J. C語言如何使用外部文件中的函數

1.
請使用預編譯指令
#include。加入外部文件,就可以使用外部文件的函數了。
#include放在代碼文件頭,用於告訴編譯器,文件中包含的頭文件,屬於預處理文件的一部分

語法為:
#include
<iostream.h>
(這句是程序編譯時搜索系統目錄文件)
#include
「HName.h"
(這句是程序編譯時搜索當前項目的文件)
2.
例如:
//函數實現 a.c文件:
int add(int x, int y){
return x+y;
}
//主文件 main.c文件:
#include <stdio.h>
#include "a.c" //引入外部函數
int main(){
int i;
i = add(1,2);
printf("%d",i);
return 0;
}