工具/材料
成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)與策劃設(shè)計,灤平網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:灤平等地區(qū)。灤平做網(wǎng)站價格咨詢:18982081108
Ubuntu16.04
gcc+vim
01
打開Ubuntu,并在目標路徑下開啟一個終端。
02
選定一個路徑,使用touch命令創(chuàng)建三個文件,function.h,function.c,test.c,分別用來做函數(shù)頭文件、函數(shù)源文件以及測試文件
03
這里以四則運算函數(shù)為例說明函數(shù)的編寫流程與調(diào)用流程。首先用vim命令與vsplit依次打開三個文件。
04
在頭文件中添加重復包含的宏,并添加四則運算的函數(shù)聲明。
05
在function.c中將function.h包含進來,并具體實現(xiàn)四個方法。注意出發(fā)要對除數(shù)是否為0進行判斷。
06
然后編寫測試程序進行測試??偟某绦虼a如下:
07
保存所有的程序并退出,使用gcc進行編譯,并運行得到的結(jié)果如下。這就是函數(shù)的聲明、定義以及調(diào)用。
1、首先建頭文件是為了聲明c文件中的函數(shù),以及包括宏定義。建立頭文件要有對應(yīng)的c文件。
2、要寫頭文件首先要建一個.h文件。
3、打開h文件,進行編輯。建立頭文件是有一定步驟的。要用到#ifndef。。。#define。。。。#endif。這是為了避免重復定義。
4、#ifndef后面要寫的是頭文件名稱的大寫。例如:test.h要寫成__TEST_H__。前面與后面是兩個下劃線。字母用大寫。
5、然后在define與endif中間聲明函數(shù)名,記得寫冒號。
6、然后在main文件中寫上include這個頭文件,就可以調(diào)用了。
7、最后編譯,運行,就完成了。
int add(int x,int y);
int sub(int x,int y);
int mul(int x,int y);
int div(int x,int y);
#include math.h
#include stdio.h
void main()
{
int a,b,c,d,e,f,g,h,i;
printf("XXXXXXXXXXXXXXX計算器");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
printf("請輸入一個整數(shù)");
printf("\n");
scanf("%d",a);
printf("\n");
for(c=1;c=30;c++)
printf("-");
printf("\n");
printf("請選擇您要做的運算:1.+,2.-,3.*,4./5.abs,6.sqrt");
printf("\n");
for(c=1;c=30;c++)
printf("*");
printf("\n");
scanf("%d",d);
printf("\n");
if(d==5) {printf("%d",abs(a));goto end;}(如果想做絕對值,就直接做abs函數(shù)(它是個庫函數(shù)).做完后就goto"end"--也就是函數(shù)的最后.)
if(d==6) {printf("%.2f",sqrt(a));goto end;};}(如果想做開平方,就直接做sqrt函數(shù)(它是個庫函數(shù)).做完后就goto"end"--也就是函數(shù)的最后.)
printf("請再次輸入一個整數(shù)"); (如果是做雙目的就開始輸入第二個數(shù)b)
printf("\n");
scanf("%d",b);
printf("\n");
switch(d)
{
case 1:add(a,b);break;
case 2:sub(a,b);break;
case 3:mul(a,b);break;
case 4:div(a,b);break;
default:printf("date input error!\n");
} end: printf("\n");}
int add(int x,int y)
{
int m;
m=x+y;
printf("%d",m);
return m;
}
int sub(int x,int y)
{
int m;
m=x-y;
printf("%d",m);
return m;
}
int mul(int x,int y)
{
int m;
m=x*y;
printf("%d",m);
return m;
}
int div(int x,int y)
{
int m;
m=x/y;
printf("%d",m);
return m;
}
(你試試看吧!應(yīng)該可以!呵呵)
在源文件A1.c中調(diào)用A2.c 中的函數(shù)有兩種方法:
1、在A2.c中有完整的函數(shù)定義,在A1.c中添加一下要用到的函數(shù)原型(聲明)就可以了,例如:
在A2.c中:有函數(shù)void A2(){...};。
在A1.c中:在文件前頭增加一行:void A2();就可以了。
2、把A2.c中完整定義的函數(shù)的原型,寫到一個A2.h文件中,然后在A1.c的文件頭增加#include "A2.h"就可以了。
以上兩種方法,在A1.c中都可以正常的調(diào)用,就跟在A2.c中調(diào)用一樣。
其實函數(shù)默認是外部的,只要在其他文件中聲明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件調(diào)用。
擴展資料:?
1、一個.h文件要 對應(yīng)有一個.c文件,這樣鏈接器就可以調(diào)用這個文件里的函數(shù)。比如a.h 和 a.c。
2、把相應(yīng)的函數(shù)定義寫在.c文件中。這里要強調(diào)一點:要加上#include ".h",這個一般作為一種工程規(guī)范。因為如果.c文件中的函數(shù)也需要調(diào)用同個.c中的其它函數(shù),那么這個.c往往會include對應(yīng)的.h。比如頭文件里進行了變量的聲明,這個時候?qū)?yīng)的.c文件是一定要加上這個頭文件的。
3、再在其他的main.c文件開頭添加#include "a.h"。