在C語言里,主函數(shù),也就是main函數(shù),是C標準的一個組成部分(參考C90/C99標準協(xié)議文檔)。雖然它也被稱作函數(shù)。但是,它對于C編譯器來講,它并不是一個真正意義上的函數(shù)?;蛘哒f,它不屬于你代碼中的任何一個模塊。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、海州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城網(wǎng)站制作、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為海州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
由于歷史原因,丹尼斯里奇和肯湯普森在完成對Basic的升級之后(也就是最初的C),對于整個語言寫成的代碼的主入口作出了一個定義,也即,使用一個名為main的,被定義為函數(shù)形式的段表示整個C程序(在OS中運行的某個進程)的進入點(Entrance)。
但對于用戶的代碼而言,用戶使用C語言編寫的所有模塊中的函數(shù)都是經(jīng)過設(shè)計和實現(xiàn)的;而不具有main的通用性。也許你應(yīng)該知道,一個C程序的執(zhí)行必然是從main開始的。
關(guān)于模塊化編程,我不知道提問者是否清楚其具體。如果不甚明白的話,請參考(C語言模塊化編程(我見過最好的).pdf),來源于百度文庫。
包括返回值,函數(shù)名,形參列表和函數(shù)體四個部分。
例如 :
int findmin(int a[],int n){
//函數(shù)體
return min;
}
以上函數(shù)int 是返回值,findmin是函數(shù)名, int a[] int n是形參列表
C語言中用函數(shù)來實現(xiàn)程序模塊。
模塊化程序設(shè)計是將一個大的任務(wù)分解成若干個小任務(wù),再將小任務(wù)分解成更小的任務(wù),直到每一個任務(wù)都只完成一個獨立功能。這樣的每個任務(wù)都叫做模塊,C語言中模塊是用函數(shù)來實現(xiàn)的。
借助函數(shù)來實現(xiàn)程序模塊化,把你想實現(xiàn)的功能用函數(shù)來實現(xiàn),不同功能的就用不同的函數(shù)來實現(xiàn),而且,函數(shù)在一定程度上可以被復(fù)用,所以稱為模塊,搜索零基礎(chǔ)學(xué)通C語言系列大全之線程_模塊兒_靜態(tài)庫_循環(huán)總結(jié)視頻教程就可以看了。
C語言中的模塊化體現(xiàn)在兩個方面:
1 函數(shù)。函數(shù)是C語言的最小單位,每個函數(shù)均實現(xiàn)一個獨立的功能,于是每個函數(shù)均可以當(dāng)做是一個最小的功能模塊。這樣,C語言就實現(xiàn)了最基本的模塊化。
2 文件。在C語言中,支持一個程序由多個源文件編譯,所以可以把類似功能的一組函數(shù)寫在同一個文件中,以源文件為單位,實現(xiàn)模塊化。當(dāng)模塊較大時,可以寫在多個頭文件中,然后編譯成一個庫文件,以庫文件為單位,實現(xiàn)模塊化。
不知道你要實現(xiàn)什么功能,只給你說了下問題所在
#includestdio.h
#include "conio.h" //getch()函數(shù)要這個頭文件
int sum_(int m,int d);//函數(shù)用之前要聲明
int leap(int y);
void main()
{
int sum_(int,int);
int leap(int);
int y,m,d,s;
printf("Please input the year,month and day:\n");
scanf("%d%d%d",y,m,d);
sum_(m,d); //這里返回的S沒用上
leap(y); //這里返回的S沒用上
printf("It's %d days",s);//這里的S沒有給值,是不是應(yīng)取上面兩個函數(shù)中的一個
getch();
}
int sum_(int m,int d)
{
int s;
switch(m)
{
case 12:s=334+d;break;
case 11:s=304+d;break;
case 10:s=273+d;break;
case 9:s=243+d;break;
case 8:s=212+d;break;
case 7:s=181+d;break;
case 6:s=151+d;break;
case 5:s=120+d;break;
case 4:s=90+d;break;
case 3:s=59+d;break;
case 2:s=31+d;break;
case 1:s=d;break;
}
return s;
}
int leap(int y)
{
int s,m; //這里的m,s沒有初始化,應(yīng)從主函數(shù)中傳遞過來如用int leap(int y,int s,int m)
if(m2y%400==0||y%100!=0y%4==0)
s=s+1;
return(s);
}