當前位置:首頁 » 編程語言 » c語言源文件和函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言源文件和函數

發布時間: 2023-02-08 03:51:08

Ⅰ 如何在c語言中源文件調用另一個源文件的函數

file1.c 頭文件為file1.h
file2.c 頭文件為file2.h
比如file2.c要調用file1.c里的一個函數
首先file2.c里要包含file1.h頭文件(file1.h里有file1.c的函數申明)
然後file2.c文件里要有file1.c里的外部函數申明,用extern關鍵字申明
然後就可以直接file2.c裡面調用file1.c里的函數了

Ⅱ C語言中如何引用其它C源文件中的函數

在源文件A1.c中調用A2.c 中的函數有兩種方法:

1、在A2.c中有完整的函數定義,在A1.c中添加一下要用到的函數原型(聲明)就可以了,例如:

在A2.c中:有函數void A2(){...};。

在A1.c中:在文件前頭增加一行:void A2();就可以了。

2、把A2.c中完整定義的函數的原型,寫到一個A2.h文件中,然後在A1.c的文件頭增加#include "A2.h"就可以了。

以上兩種方法,在A1.c中都可以正常的調用,就跟在A2.c中調用一樣。

其實函數默認是外部的,只要在其他文件中聲明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件調用。

(2)c語言源文件和函數擴展閱讀:

1、一個.h文件要 對應有一個.c文件,這樣鏈接器就可以調用這個文件里的函數。比如a.h 和 a.c。

2、把相應的函數定義寫在.c文件中。這里要強調一點:要加上#include ".h",這個一般作為一種工程規范。因為如果.c文件中的函數也需要調用同個.c中的其它函數,那麼這個.c往往會include對應的.h。比如頭文件里進行了變數的聲明,這個時候對應的.c文件是一定要加上這個頭文件的。

3、再在其他的main.c文件開頭添加#include "a.h"。

Ⅲ C語言里頭文件和源文件是什麼

一般來說
頭文件里包含:
1。引用的頭文件
2。(外部)全局變數聲明
3。結構體,類,枚舉,宏定義
4。(外部)函數聲明
5。......

源文件包含:
1。引用的頭文件
2。全局變數定義
3。函數實現
4。僅本文件內使用的全局變數
5。也可以包含頭文件的全部內容
6。......

Ⅳ C語言中 多個源文件之間函數如何調用

首先要建立一個頭文件,以.h保存
這樣
#include <stdio.h>
typedef struct {
char name[100][60];
char number[100][8];
int mon[100],day[100];
char sex[100];
double height[100];
}inf;
int input(inf *x ,int i);
int output(inf *y ,int h);

當然要有個主函數.
#include "inout.h"
int main(void)
{
int n;
inf id;
do{
printf("*********n");
scanf("%d",&n);
}while(n>100);
input(&id,n);
output(&id,n);
return(0);
}

然後 這個頭文件有兩個函數.這兩個函數,以.c的格式保存.
#include <stdio.h>
#include "inout.h"
int input(inf *x,int i)
{
........
}
#include <stdio.h>
#include "inout.h"
int output(inf *y ,int h)
{
....
}
主函數來負責調用,別的源文件.但是,要有一定要有個頭文件.
就相當說, 站長(主函數)要控制各個列車(多個源文件).需要通過調度台(頭文件)
這是我的理解,我也是剛學.希望大家指正
編譯的時候,要分別編譯,先要把非主函數的源文件便宜成obj格式.
我的編譯器是:cl /c 源文件名.c (cygwin中是 gcc -c 源文件名.c)
最後和主函數結合.
cl main.c 源文件.obj
cygwin中是 gcc -o main main.c 源文件.o
不知道 我說的夠不夠明白

Ⅳ 用C語言編寫了一個.c的源文件,裡面有主函數,和一些被調函數,請問如何在C++中調用這個主函數。

一個程序裡面只能有一個主函數,這個要明確!
我明白你的意思,你是寫了個程序--
A.cpp文件
又寫了個
B.cpp文件程序
想在裡面調用A裡面的函數,只能調用裡面的
全局函數
不能是main函數;
在B的開頭加上
#include「A.cpp」可以了

Ⅵ C 語言中有調用關系的所有函數都必須放在同一源程序文件中怎麼理解啊

因為當需要用到另一個函數的時候,編譯器會在本文件中尋找需要的函數,如果不放在一個文件里就會導致程序中斷,所以有調用關系的所有函數都必須放在同一源程序文件中,比如有兩個函數 A()和B(),那麼如果在A函數中要調用B函數的話,A函數必須要能在本文件中找到B函數,這樣才能找到該函數的地址

(6)c語言源文件和函數擴展閱讀

函數

C程序是由一組變數或是函數的外部對象組成的。 函數是一個自我包含的完成一定相關功能的執行代碼段。我們可以把函數看成一個「黑盒子」,你只要將數據送進去就能得到結果,而函數內部究竟是如何工作的,外部程序是不知道的。

外部程序所知道的僅限於輸入給函數什麼以及函數輸出什麼。函數提供了編製程序的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。

C程序中函數的數目實際上是不限的,如果說有什麼限制的話,那就是,一個C程序中必須至少有一個函數,而且其中必須有一個並且僅有一個以main為名,這個函數稱為主函數,整個程序從這個主函數開始執行。

C 語言程序鼓勵和提倡人們把一個大問題劃分成一個個子問題,對應於解決一個子問題編制一個函數,因此,C 語言程序一般是由大量的小函數而不是由少量大函數構成的,即所謂「小函數構成大程序」

這樣的好處是讓各部分相互充分獨立,並且任務單一。因而這些充分獨立的小模塊也可以作為一種固定規格的小「構件」, 用來構成新的大程序。

C語言發展的那麼多年來,用C語言開發的系統和程序浩如煙海。在發展的同時也積累了很多能直接使用的庫函數。

ANSI C提供了標准C語言庫函數。

C語言初學者比較喜歡的Turbo C2.0提供了400多個運行時函數,每個函數都完成特定的功能,用戶可隨意調用。這些函數總體分成輸入輸出函數、數學函數、字元串和內存函數、與BIOS和DOS有關的函數、 字元屏幕和圖形功能函數、過程式控制制函數、目錄函數等。

Windows系統所提供的Windows SDK中包含了數千個跟Windows應用程序開發相關的函數。

其他操作系統,如Linux,也同樣提供了大量的函數讓應用程序開發人員調用。

作為程序員應盡量熟悉目標平台庫函數其功能。這樣才能游刃有餘地開發特定平台的應用程序。比如作為Windows應用程序的開發者,應盡量熟悉Windows SDK;作為Linux應用程序開發者,應盡量熟悉Linux系統調用和POSIX函數規范。

Ⅶ C語言中 多個源文件之間函數如何調用問題

題目明顯提示你沒有定義「add」呀,要求你查看「add」哦!再個你程序還是有問題的吧,如果你把它放到不同的源文件中一起編譯連接的話,還會出現重復定義的錯誤吧。改正如下:
#include<stdio.h>
#include<malloc.h>
struct add *wwe();
struct add
{
int xuehao;
};
main()
{
struct add *p1;
p1=wwe();
}
//被調函數332.c
#include <stdio.h>
#include<malloc.h>
struct add *wwe() //此處你是定義一個名為wwe的函數,沒有參數,返回值類型是:struct add*
{
struct add *p1;
p1=(struct add *)malloc(sizeof(struct add)); /*此處「extern」可以不要吧,一般他是用來聲明用的,*/
return p1; //此處要返回一個值,沒有值是不可以的
}

Ⅷ c語言中的頭文件,源文件,資源文件分別指什麼_

我們寫個作文,其實要加上#include<新華字典。h>
用詞語要《漢語詞典。h》用到數字的加減法《數學。h》物理么《物理。h》

電腦比人傻,所以,人一看就知道中文還是英文了。
這里包含了函數,比如一些單詞啊。片語啊。人也可以分辨。但是電腦不可以。
這些算頭文件吧。。
所以,你要自己定義函數。這我感覺其實也算了。但是,它有自己獨特的方式,不屬於最基礎的東西,所以,這些經常不被稱作頭文件。另一個原因是《stdio.h》裡面會包含一些即便是你定義的函數,這個函數做出來的時候用了一些基本的東西,包含在stdio。h裡面。所以。。。


源文件,我感覺就是一個函數程序吧。可以是裡面的一個scanf()或者printf()這都屬於,
如果你不include<stido.h>那麼你自己需要定一個scanf函數,定義個源文件。這個源文件告訴計算機,怎麼輸入你的字元的。
而同樣,你寫出的一個程序,它就是一個源文件,廣義狹義的范圍吧。

資源文件我也會類似的分廣義狹義的去理解。
比如你做個網頁,分幾個步驟,這種套路算一種資源文件。
比如#include《xxx》int main(){……return0;}
這是一種類似套路的資源文件。
另一種是,比如判斷素數,簡單的我們先做一個判斷素數的函數,當我們後面直接用它去判斷就算一種資源文件了。比如上面的scanf() printf(),這都屬於資源之類的,但我們直接調用了。。

剛自習一周多。不知道對錯。有問題幫忙指出,謝謝!

Ⅸ C語言源程序是由什麼構成的

C語言源程序是由:數據類型、常量與變數、數組、指針、字元串、文件輸入/輸出、運算構成。

1、數據類型

C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。

2、常量與變數

常量其值不可改變,符號常量名通常用大寫。

變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。

3、數組

如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。

4、指針

如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。

指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。

指針是一把雙刃劍,許多操作可以通過指針自然的表達,但是不正確的或者過分的使用指針又會給程序帶來大量潛在的錯誤。

5、字元串

C語言的字元串其實就是以''字元結尾的char型數組,使用字元型並不需要引用庫,但是使用字元串就需要C標准庫裡面的一些用於對字元串進行操作的函數。它們不同於字元數組。使用這些函數需要引用頭文件<string.h>。

6、文件輸入/輸出

在C語言中,輸入和輸出是經由標准庫中的一組函數來實現的。在ANSI C中,這些函數被定義在頭文件<stdio.h>;中。

7、運算

C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。

當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。

在學習中,對此合理進行分類,找出它們與數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。

(9)c語言源文件和函數擴展閱讀:

C語言的特有特點:

1、C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。

2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。

3、不同的變數類型可以用結構體(struct)組合在一起。

4、只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。

5、部份的變數類型可以轉換,例如整型和字元型變數。

6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。

7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。

Ⅹ C語言的程序、文件、函數之間的關系

程序是指你為了完成你的功能而編寫的項目代碼。

文件是信息的保存方式,包括程序文件、庫文件、數據文件等。廣義上說,設備也包含在文件的定義裡面。

由於程序規模可能非常大,編程時往往將將代碼劃分成若干模塊,每一模塊對應一個子功能,這樣也方便實現程序代碼的復用。這一一個模塊,在形式上就體現為函數。——如果規模再大一些,可能還需要將一些相關的類封閉成類庫,以方便調用,進一步提高程序的復用性。

這些只是經驗,談不上理論,也沒必要去鑽牛角尖。程序多寫一些,你自然就明白了。