真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言的函數(shù)頭書寫標(biāo)準(zhǔn) C語言函數(shù)頭

c語言中,標(biāo)準(zhǔn)main函數(shù)的書寫規(guī)范是什么?

在最新的 C99 標(biāo)準(zhǔn)中,只有以下兩種定義方式是正確的:

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、網(wǎng)站建設(shè)、延長網(wǎng)絡(luò)推廣、小程序開發(fā)、延長網(wǎng)絡(luò)營銷、延長企業(yè)策劃、延長品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供延長建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

int main( void ) /* 無參數(shù)形式 */

{

...

return 0;

}

int main( int argc, char *argv[] ) /* 帶參數(shù)形式 */

{

...

return 0;

}

int指明了main()函數(shù)的返回類型,函數(shù)名后面的圓括號一般包含傳遞給函數(shù)的信息。void表示沒有給函數(shù)傳遞參數(shù)。關(guān)于帶參數(shù)的形式,我們等會討論。

瀏覽老版本的C代碼,將會發(fā)現(xiàn)程序常常以。

main()

這種形式開始。C90標(biāo)準(zhǔn)允許這種形式,但是C99標(biāo)準(zhǔn)不允許。因此即使你當(dāng)前的編譯器允許,也不要這么寫。

你還可能看到過另一種形式。

void main()

有些編譯器允許這種形式,但是還沒有任何標(biāo)準(zhǔn)考慮接受它。C++ 之父 Bjarne Stroustrup 在他的主頁上的 FAQ 中明確地表示:void main( ) 的定義從來就不存在于 C++ 或者 C 。所以,編譯器不必接受這種形式,并且很多編譯器也不允許這么寫。

C語言書寫格式標(biāo)準(zhǔn)是什么?

你的錯誤是沒加頭文件,因為使用printf需要調(diào)用庫函數(shù) stdio.h。

符號名包括模塊名、常量名、標(biāo)號名、子程序名等。這些名字應(yīng)該能反映它所代表的實際東西,具有一定的意義,使其能夠見名知義,有助于對程序功能的理解。命名采用匈牙利命名法。具體規(guī)則如下:

(1)所有宏定義、枚舉常數(shù)和const變量,用大寫字母命名。在復(fù)合詞里用下劃線隔開每個詞。

(2)復(fù)合詞中每個單詞的第一個字母大寫。除了規(guī)則5.1.1.1以外,避免使用下劃線。

(3)類、類型定義和枚舉型名的第一個字母大寫。

(4)函數(shù)名是復(fù)合詞的,第一個詞采用全部小寫,隨后每個單詞采用第一個字母大寫,其它字母小寫方式;如果是單個詞的,采用全部小寫方式。

(5)循環(huán)變量可采用i, j, k等,不受上述規(guī)則限制。

(6) 類的成員變量應(yīng)采用m_開頭。

(7) 全局變量詞頭為g_ 。

(8) 臨時變量詞頭為tmp_ 。

(9) 對結(jié)構(gòu)體內(nèi)的變量命名, 遵循變量的具體含義命名原則

(10)用小寫字母的前綴表示變量的類型,前綴的下一個字母用大寫。

——文件之中不得存在無規(guī)則的空行,比如說連續(xù)十個空行。

一般來講函數(shù)與函數(shù)之間的空行為2-3行;

在函數(shù)體內(nèi)部,在邏輯上獨立的兩個函數(shù)塊可適當(dāng)空行,一般為1-2行。

——程序編寫首先應(yīng)考慮清晰性,不要刻意追求技巧性而使得程序難以理解。

——每行長度盡量避免超過屏幕寬度,應(yīng)不超過80個字符。

——除非對效率有特殊要求,編寫程序要作到清晰第一,效率第二。

——盡可能使用函數(shù)庫。

——盡量用公共過程或子程序去代替重復(fù)的功能代碼段。要注意,這個代碼應(yīng)具有一個獨立的功能,不要只因代碼形式一樣便將其抽出組成一個公共過程或子程序。

——使用括號清晰地表達(dá)算術(shù)表達(dá)式和邏輯表達(dá)式的運算順序。如將 x=a*b/c*d 寫成 x=(a*b/c)*d可避免閱讀者誤解為x=(a*b)/(c*d)。

——避免不必要的轉(zhuǎn)移。

——避免采用過于復(fù)雜的條件測試。

——避免過多的循環(huán)嵌套和條件嵌套。

——建議不要使?*=,^=, /=等運算符。

——一個函數(shù)不要超過200行。一個文件應(yīng)避免超過2000行。

——盡量避免使用go to語句。

——避免采用多賦值語句,如x = y = z ;

——不鼓勵采用?:操作符,如z = (ab)?a:b;

——不要使用空的if else 語句。

c語言頭文件怎么寫呀?

C++/C程序的頭文件以“.h”為后綴。以下是假設(shè)名稱為graphics.h的頭文件:

#ifndef GRAPHICS_H//作用:防止graphics.h被重復(fù)引用

#define GRAPHICS_H

#includelt;....gt;//引用標(biāo)準(zhǔn)庫的頭文件

...

#include"..."http://引用非標(biāo)準(zhǔn)庫的頭文件

...

void Function1(...);//全局函數(shù)聲明

...

inline();//inline函數(shù)的定義

...

classBox//作用:類結(jié)構(gòu)聲明

{

...

};

#endif

從以上例子可以看出,頭文件一般由四部分內(nèi)容組成:

(1)頭文件開頭處的版權(quán)和版本聲明;

(2)預(yù)處理塊;

(3)inline函數(shù)的定義;

(4)函數(shù)和類結(jié)構(gòu)聲明等。

在頭文件中,用ifndef/define/endif結(jié)構(gòu)產(chǎn)生預(yù)處理塊,用#include格式來引用庫的頭文件。頭文件的這種結(jié)構(gòu),是利用C語言進行開發(fā)軟件所通常具備的,屬于公有知識。

傳統(tǒng) C++:

擴展資料:

c語言頭文件的作用:

1、頭文件可以定義所用的函數(shù)列表,方便查閱你可以調(diào)用的函數(shù);

2、頭文件可以定義很多宏定義,就是一些全局靜態(tài)變量的定義,在這樣的情況下,只要修改頭文件的內(nèi)容,程序就可以做相應(yīng)的修改,不用親自跑到繁瑣的代碼內(nèi)去搜索。

3、頭文件只是聲明,不占內(nèi)存空間,要知道其執(zhí)行過程,要看你頭文件所申明的函數(shù)是在哪個.c文件里定義的,才知道。

4、他并不是C自帶的,可以不用。

5、調(diào)用了頭文件,就等于賦予了調(diào)用某些函數(shù)的權(quán)限,如果你要算一個數(shù)的N次方,就要調(diào)用Pow()函數(shù),而這個函數(shù)是定義在math.c里面的,要用這個函數(shù),就必需調(diào)用math.h這個頭文件。

參考資料:

百度百科——頭文件

c語言的函數(shù)頭

在一個函數(shù)定義中,函數(shù)體之前的所有部分稱為函數(shù)頭,它給出了該函數(shù)的返回類型、每個參數(shù)的次序和類型等函數(shù)原型信息,所以當(dāng)沒有專門給出函數(shù)原型說明語句時,系統(tǒng)就從函數(shù)頭中獲取函數(shù)原型信息。

一個函數(shù)的原型語句就是其函數(shù)頭的一個拷貝,當(dāng)然要在最后加上語句接上結(jié)束符分號。函數(shù)原型語句與函數(shù)頭也有細(xì)微的差別,在函數(shù)原型語句中,其參數(shù)表中的每個參數(shù)允許只保留參數(shù)類型,而省略參數(shù)名,并且若使用參數(shù)名也允許與函數(shù)頭中對應(yīng)的參數(shù)名不同。

全文如下:

一)、定義格式

類型名 函數(shù)名 ([參數(shù)表]) 函數(shù)體

類型名為系統(tǒng)或用戶已定義的一種數(shù)據(jù)類型,它是函數(shù)執(zhí)行過程中通過return語句要求返回的值的類型,又稱為該函數(shù)的類型。當(dāng)一個函數(shù)不需要通過return語句返回一個值時,稱為無返回值函數(shù)或無類型函數(shù),此時需要使用保留字void作為類型名。當(dāng)類型名為int時,可以省略不寫,但為了清楚起見,還是寫明為好。

函數(shù)名是用戶為函數(shù)所起的名字,它是一個標(biāo)識符,應(yīng)符合C++標(biāo)識符的一般命名規(guī)則,用戶通過使用這個函數(shù)名和實參表可以調(diào)用該函數(shù)。

參數(shù)表又稱形式參數(shù)表,它包含有任意多個(含0個,即沒有)參數(shù)說明項,當(dāng)多于一個時其前后兩個參數(shù)說明項之間必須用逗號分開。每個參數(shù)說明項由一種已定義的數(shù)據(jù)類型和一個變量標(biāo)識符組成,該變量標(biāo)識符成為該函數(shù)的形式參數(shù),簡稱形參,形參前面給出的數(shù)據(jù)類型稱為該形參的類型。一個函數(shù)定義中的參數(shù)表可以被省略,表明該函數(shù)為無參函數(shù),若參數(shù)表用void取代,則也表明是無參函數(shù),若參數(shù)表不為空,同時又不是保留字void,則稱為帶參函數(shù)。

函數(shù)體是一條復(fù)合語句,它以左花括號開始,到右花括號結(jié)束,中間為一條或若干條C++語句。

在一個函數(shù)的參數(shù)表中,每個參數(shù)可以為任一種數(shù)據(jù)類型,包括普通類型、指針類型、數(shù)組類型、引用類型等,一個函數(shù)的返回值可以是除數(shù)組類型之外的任何類型,包括普通類型、指針類型和引用類型等。另外,當(dāng)不需要返回值時,應(yīng)把函數(shù)定義為void類型。

二)、定義格式舉例

(1) void f1() {...}

(2) void f2(int x) {...}

(3) int f3(int x,int* p) {...}

(4) char* f4(char a[]){...}

(5) int f5(int x,double d) {...}

(6) int f6(int b[10], int n) {...}

(7) void f7(float c[][N], int m, float max) {...}

(8) bool f8(ElemType* bt, ElemType item) {...}

在第一條函數(shù)定義中,函數(shù)名為f1,函數(shù)類型為void,參數(shù)表為空,此函數(shù)是一個無參無類型函數(shù)。若在f1后面的圓括號內(nèi)寫入保留字void,也表示為無參函數(shù)。

在第二條函數(shù)定義中,僅帶有一個類型為int的形參變量x,該函數(shù)沒有返回值。

在第三條函數(shù)定義中,函數(shù)名為f3,函數(shù)類型為int,函數(shù)參數(shù)為x和p,其中x為int型普通參數(shù),p為int*型指針參數(shù)。

在第四條函數(shù)定義中,函數(shù)名為f4,函數(shù)類型為char*,即字符指針類型,參數(shù)表中包含一個一維字符數(shù)組參數(shù)。注意:在定義任何類型的一維數(shù)組參數(shù)時,不需要給出維的尺寸,當(dāng)然給出也是允許的,但沒有任何意義。

在第五條函數(shù)定義中,函數(shù)名為f5,返回類型為int,該函數(shù)帶有兩個形參,一個為 整型引用變量x,另一個為雙精度變量d。

在第六條函數(shù)定義中,函數(shù)名為f6,函數(shù)類型為int,即整型引用,該函數(shù)帶有兩個形參,一個是整型數(shù)組b,另一個是整型變量n。在這里定義形參數(shù)組b所給出的維的尺寸10可以被省略。

在第七條函數(shù)定義中,函數(shù)名為f7,無函數(shù)類型,參數(shù)表中包含三個參數(shù),一個為二維單精度型數(shù)組c,第二個為整型變量m,第三個為單精度引用變量max。注意:當(dāng)定義一個二維數(shù)組參數(shù)時,第二維的尺寸必須給出,并且必須是一個常量表達(dá)式,第一維尺寸可給出也可不給出,其作用相同。

在第八條函數(shù)定義中,函數(shù)名為f8,返回類型為bool,即邏輯類型,該函數(shù)帶有兩個參數(shù),一個為形參bt,它為ElemType的指針引用類型,另一個為形參item,它是ElemType的引用類型,其中ElemType為一種用戶定義的類型或是通過typedef語句定義的一個類型的別名。

三)、有關(guān)函數(shù)定義的幾點說明

1. 函數(shù)原型語句

在一個函數(shù)定義中,函數(shù)體之前的所有部分稱為函數(shù)頭,它給出了該函數(shù)的返回類型、每個參數(shù)的次序和類型等函數(shù)原型信息,所以當(dāng)沒有專門給出函數(shù)原型說明語句時,系統(tǒng)就從函數(shù)頭中獲取函數(shù)原型信息。

一個函數(shù)必須先定義或聲明而后才能被調(diào)用,否則編譯程序無法判斷該調(diào)用的正確性。一個函數(shù)的聲明是通過使用一條函數(shù)原型語句實現(xiàn)的,當(dāng)然使用多條相同的原型語句聲明同一個函數(shù)雖然多余但也是允許的,編譯時不會出現(xiàn)錯誤。

在一個完整的程序中,函數(shù)的定義和函數(shù)的調(diào)用可以在同一個程序文件中,也可以處在不同的程序文件中,但必須確保函數(shù)原型語句與函數(shù)調(diào)用表達(dá)式出現(xiàn)在同一個文件中,并且函數(shù)原型語句出現(xiàn)在前,函數(shù)的調(diào)用出現(xiàn)在后。

通常把一個程序中用戶定義的所有函數(shù)的原型語句組織在一起,構(gòu)成一個頭文件,讓該程序中所含的每個程序文件的開始(即所有函數(shù)定義之前)包含這個頭文件(通過#include命令實現(xiàn)),這樣不管每個函數(shù)的定義在哪里出現(xiàn),都能夠確保函數(shù)先聲明后使用(即調(diào)用)這一原則的實現(xiàn)。

一個函數(shù)的原型語句就是其函數(shù)頭的一個拷貝,當(dāng)然要在最后加上語句接上結(jié)束符分號。函數(shù)原型語句與函數(shù)頭也有細(xì)微的差別,在函數(shù)原型語句中,其參數(shù)表中的每個參數(shù)允許只保留參數(shù)類型,而省略參數(shù)名,并且若使用參數(shù)名也允許與函數(shù)頭中對應(yīng)的參數(shù)名不同。

2. 常量形參

在定義一個函數(shù)時,若只允許函數(shù)體訪問一個形參的值,不允許修改它的值,則應(yīng)把該形參說明為常量,這只要在形參說明的前面加上const保留字進行修飾即可。如:

void f9(const int x, const char y);

void f10(const char* p, char key);

在函數(shù)f9的函數(shù)體中只允許使用x和y的值,不允許修改它們的值。在函數(shù)f10的函數(shù)體中只允許使用p所指向的字符對象或字符數(shù)組對象的值,不允許修改它們的值,但在函數(shù)體中既允許使用也允許修改形參key的值。

3. 缺省參數(shù)

在一個函數(shù)定義中,可根據(jù)需要對參數(shù)表末尾的一個或連續(xù)若干個參數(shù)給出缺省值,當(dāng)調(diào)用這個函數(shù)時,若實參表中沒有給出對應(yīng)的實參,則形參將采用這個缺省值。如:

void f11(int x, int y=0) {...}

int f12(int a[], char op='+', int k=10) {...}

函數(shù)f11的定義帶有兩個參數(shù),分別為整型變量x和y,并且y帶有缺省值0,若調(diào)用該函數(shù)的表達(dá)式為f11(a,b),將把a的值賦給x,把b的值賦給y,接著執(zhí)行函數(shù)體;若調(diào)用該函數(shù)的表達(dá)式為f11(a+b),則也是正確的調(diào)用格式,它將把a+b的值賦給x,因y沒有對應(yīng)的實參,將采用缺省值0,參數(shù)傳送后接著執(zhí)行函數(shù)體。

函數(shù)f12的定義帶有三個參數(shù),其中后兩個帶有缺省值,所以調(diào)用它的函數(shù)格式有三種,一種只帶一個實參,用于向形參a傳送數(shù)據(jù),后兩個形參采用缺省值,第二種帶有兩個實參,用于分別向形參a和op傳送數(shù)據(jù),第三個形參采用缺省值,第三種帶有三個實參,分別用于傳送給三個形參。

若一個函數(shù)帶有專門的函數(shù)原型語句,則形參的缺省值只能在該函數(shù)原型語句中給出,不允許在函數(shù)頭中給出。如對于上述的f11和f12函數(shù),其對應(yīng)的函數(shù)原型語句分別為:

void f11(int x, int y=0);

int f12(int a[], char op='+', int k=10);

函數(shù)定義應(yīng)分別改寫為:

void f11(int x, int y) {...}

int f12(int a[], char op, int k) {...}

4. 數(shù)組參數(shù)

在函數(shù)定義中的每個數(shù)組參數(shù)實際上是指向元素類型的指針參數(shù)。對于一維數(shù)組參數(shù)說明:

數(shù)據(jù)類型 數(shù)組名[]

它與下面的指針參數(shù)說明完全等價:

數(shù)據(jù)類型 *指針變量名

其中指針變量名就是數(shù)組參數(shù)說明中的數(shù)組名。如對于f12函數(shù)定義中的數(shù)組參數(shù)說明int a[],等價于指針參數(shù)說明int* a。也就是說,數(shù)組參數(shù)說明中的數(shù)組名a是一個類型為int*的形參。注意:在變量定義語句中定義的數(shù)組,其數(shù)組名代表的是一個數(shù)組,它的值是指向第一個元素的指針常量,這與數(shù)組形參的含義有區(qū)別。

對于二維數(shù)組參數(shù)說明:

數(shù)據(jù)類型 參數(shù)名[][第二維尺寸]

它與下面的指針參數(shù)說明完全等價:

數(shù)據(jù)類型 (*參數(shù)名)[第二維尺寸]

如對于f7函數(shù)定義中的二維數(shù)組參數(shù)說明float c[][N],等價于指針參數(shù)說明float(*c)[N]。

5. 函數(shù)類型

當(dāng)調(diào)用一個函數(shù)時就執(zhí)行一遍循環(huán)體,對于類型為非void的函數(shù),函數(shù)體中至少必須帶有一條return語句,并且每條return語句必須帶有一個表達(dá)式,當(dāng)執(zhí)行到任一條return語句時,將計算出它的表達(dá)式的值,結(jié)束整個函數(shù)的調(diào)用過程,把這個值作為所求的函數(shù)值帶回到調(diào)用位置,參與相應(yīng)的運算;對于類型為void的函數(shù),它不需要返回任何函數(shù)值,所以在函數(shù)體中既可以使用return語句,也可以不使用,對于使用的每條return語句不允許也不需要帶有表達(dá)式,當(dāng)執(zhí)行到任一條return語句時,或執(zhí)行到函數(shù)體最后結(jié)束位置時,將結(jié)束函數(shù)的調(diào)用過程,返回到調(diào)用位置向下繼續(xù)執(zhí)行。

6. 內(nèi)聯(lián)函數(shù)

當(dāng)在一個函數(shù)的定義或聲明前加上關(guān)鍵字inline則就把該函數(shù)聲明為內(nèi)聯(lián)函數(shù)。計算機在執(zhí)行一般函數(shù)的調(diào)用時,無論該函數(shù)多么簡單或復(fù)雜,都要經(jīng)過參數(shù)傳遞、執(zhí)行函數(shù)體和返回等操作。若把一個函數(shù)聲明為內(nèi)聯(lián)函數(shù)后,在程序編譯階段系統(tǒng)就有可能把所有調(diào)用該函數(shù)的地方都直接替換為該函數(shù)的執(zhí)行代碼,由此省去函數(shù)調(diào)用時的參數(shù)傳遞和返回操作,從而加快整個程序的執(zhí)行速度。通??砂岩恍┫鄬唵蔚暮瘮?shù)聲明為內(nèi)聯(lián)函數(shù),對于較復(fù)雜的函數(shù)則不應(yīng)聲明為內(nèi)聯(lián)函數(shù)。從用戶的角度看,調(diào)用內(nèi)聯(lián)函數(shù)和一般函數(shù)沒有任何區(qū)別。下面就是一個內(nèi)聯(lián)函數(shù)定義的例子,它返回形參值的立方。

inline int cube(int n)

{

return n*n*n;

}


當(dāng)前名稱:c語言的函數(shù)頭書寫標(biāo)準(zhǔn) C語言函數(shù)頭
分享鏈接:http://weahome.cn/article/hjepgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部