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

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

c語言主函數(shù)必須main c語言主函數(shù)必須位于開頭

必須用main作為主函數(shù)名嗎

絕大多數(shù)語言都是將main作為主函數(shù)名。

成都創(chuàng)新互聯(lián)公司專注于沭陽企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),購物商城網(wǎng)站建設(shè)。沭陽網(wǎng)站建設(shè)公司,為沭陽等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

一般而言,編寫一個(gè)能運(yùn)行在操作系統(tǒng)上的程序,都需要一個(gè)主函數(shù)。主函數(shù)既是程序的入口,又是程序的出口。

主函數(shù)意味著建立一個(gè)獨(dú)立進(jìn)程,且該進(jìn)程成為了程序的入口,對(duì)其它各函數(shù)、方法進(jìn)行調(diào)用,這樣整個(gè)程序的運(yùn)行軌跡就像一種棧。

擴(kuò)展資料:

各個(gè)語言對(duì)main函數(shù)作為程序入口的應(yīng)用

C++中的main函數(shù)要想作為程序執(zhí)行的出入口,必須寫在全局(Global)范圍,不能寫成某個(gè)結(jié)構(gòu)體或某個(gè)類的成員。雖然main函數(shù)可以作為結(jié)構(gòu)體或者類的成員函數(shù),但相應(yīng)地會(huì)失去作為程序出入口的功能。

在Java Application中main不允許返回值,因此int main是被禁止的,必須使用void main,int main僅限在JavaBean中使用。

C#中的main函數(shù)的首字母變成了大寫,即"Main函數(shù)“。

參考資料:百度百科-main函數(shù)

C語言函數(shù)員程序中是否可以沒有main函數(shù)?

C語言程序中不可以沒有main函數(shù)。因?yàn)閙ain函數(shù)是主函數(shù),主函數(shù)是必須有的,它是程序執(zhí)行的入口。而且必須有且僅有一個(gè)main函數(shù),程序總是從main函數(shù)開始執(zhí)行并在main函數(shù)中結(jié)束。

語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束對(duì)不

對(duì) ,一個(gè)主函數(shù)規(guī)定必須用main作為主函數(shù),他可以有多個(gè)非主函數(shù),但一定是在主函數(shù)中開始,最終都是在主函數(shù)中結(jié)束。

C程序中是不是一定要有main函數(shù)?

C程序中不一定要有main函數(shù)。

C語言一共只有32個(gè)關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。 C 語言可以象匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元。

擴(kuò)展資料

C的運(yùn)算符包含的范圍很廣泛,共有種34個(gè)運(yùn)算符。C語言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。

C的數(shù)據(jù)類型有:整型、實(shí)型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。

參考資料來源:百度百科-c程序

main函數(shù) 在每個(gè)c語言程序中都是必須的嗎

C語文程序中必須有main()函數(shù)。

C的設(shè)計(jì)原則是把函數(shù)作為程序的構(gòu)成模塊。main()函數(shù)稱之為主函數(shù),一個(gè)C程序總是從main()函數(shù)開始執(zhí)行的。

一、main()函數(shù)的形式

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

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

{

...

return 0;

}

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

{

...

return 0;

}

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

瀏覽老版本的C代碼,將會(huì)發(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 。所以,編譯器不必接受這種形式,并且很多編譯器也不允許這么寫。

堅(jiān)持使用標(biāo)準(zhǔn)的意義在于:當(dāng)你把程序從一個(gè)編譯器移到另一個(gè)編譯器時(shí),照樣能正常運(yùn)行。

二、main()函數(shù)的返回值

從前面我們知道m(xù)ain()函數(shù)的返回值類型是int型的,而程序最后的 return 0; 正與之遙相呼應(yīng),0就是main()函數(shù)的返回值。那么這個(gè)0返回到那里呢?返回給操作系統(tǒng),表示程序正常退出。因?yàn)閞eturn語句通常寫在程序的最后,不管返回什么值,只要到達(dá)這一步,說明程序已經(jīng)運(yùn)行完畢。而return的作用不僅在于返回一個(gè)值,還在于結(jié)束函數(shù)。

現(xiàn)在我們來做一個(gè)小試驗(yàn)來觀察main()函數(shù)的返回值。編寫如下代碼并編譯運(yùn)行:

//a.c

#include "stdio.h"

int main(void)

{

printf("I love you.");

return 0;

}

將這個(gè)文件保存為a.c,編譯運(yùn)行后會(huì)生成一個(gè)a.exe文件?,F(xiàn)在打開命令提示符,在命令行里運(yùn)行剛才編譯好的可執(zhí)行文件,然后輸入 echo %ERRORLEVEL% ,回車,就可以看到程序返回 一個(gè)0 。如果把 return 0; 改為 return 99; ,那么很顯然,再次執(zhí)行上述步驟以后你可以看到程序返回99。要是你這樣寫 return 99.99; 那還是返回99,因?yàn)?9.99被傳給操作系統(tǒng)之前,被強(qiáng)制類型轉(zhuǎn)換成整數(shù)類型了。

現(xiàn)在,我們把a(bǔ).c改回原來的代碼,然后再編寫另一個(gè)程序b.c:

//b.c

#include "stdio.h"

int main(void)

{

printf("I’m too.");

return 0;

}

編譯運(yùn)行后打開命令提示符,在命令行里輸入ab 回車,這樣你就可以看到《人鬼情未了》里面經(jīng)典的愛情對(duì)白:

I love you.

I’m too.

的含義是:如果 前面的程序正常退出,則繼續(xù)執(zhí)行 后面的程序,否則不執(zhí)行。所以,要是把a(bǔ).c里面的 return 0; 刪除或者改為 return 99; ,那么你只能看到 I love you. 。也就是說,程序b.c就不執(zhí)行了。現(xiàn)在,大家該明白 return 0; 的作用了吧。

三、main()函數(shù)的參數(shù)

C編譯器允許main()函數(shù)沒有參數(shù),或者有兩個(gè)參數(shù)(有些實(shí)現(xiàn)允許更多的參數(shù),但這只是對(duì)標(biāo)準(zhǔn)的擴(kuò)展)。這兩個(gè)參數(shù),一個(gè)是int類型,一個(gè)是字符串類型。第一個(gè)參數(shù)是命令行中的字符串?dāng)?shù)。按照慣例(但不是必須的),這個(gè)int參數(shù)被稱為argc(argument count)。大家或許現(xiàn)在才明白這個(gè)形參為什么要取這么個(gè)奇怪的名字吧,呵呵!至于英文的意思,自己查字典吧。第二個(gè)參數(shù)是一個(gè)指向字符串的指針數(shù)組。命令行中的每個(gè)字符串被存儲(chǔ)到內(nèi)存中,并且分配一個(gè)指針指向它。按照慣例,這個(gè)指針數(shù)組被稱為argv(argument value)。系統(tǒng)使用空格把各個(gè)字符串格開。一般情況下,把程序本身的名字賦值給argv[0],接著,把最后的第一個(gè)字符串賦給argv[1],等等。

現(xiàn)在我們來看一個(gè)例子:

//c.c

#include "stdio.h"

int main(int argc, char *argv[])

{

int count;

printf("The command line has %d arguments:

", argc - 1);

for(count = 1; count argc; count++)

printf("%d: %s

", count, argv[count]);

return 0;

}

編譯運(yùn)行,在命令行輸入c I love you 回車,下面是從命令行運(yùn)行該程序的結(jié)果:

The command line has 3 arguments:

1:I

2:love

3:you

從本例可以看出,程序從命令行中接受到4個(gè)字符串(包括程序名),并將它們存放在字符串?dāng)?shù)組中,其對(duì)應(yīng)關(guān)系:

argv[0] ------ c(程序名)

argv[1] ------ I

argv[2] ------ love

argv[3] ------ you

至于argc的值,也即是參數(shù)的個(gè)數(shù),程序在運(yùn)行時(shí)會(huì)自動(dòng)統(tǒng)計(jì),不必我們操心。

這個(gè)例子中,每個(gè)字符串都時(shí)一個(gè)單詞(字母),那既然是字符串,要把一句話當(dāng)作參數(shù)賦給程序該怎么辦?你可以在命令行里這樣輸入 c "I love you." "I’m too."。程序運(yùn)行結(jié)果:

The command line has 2 arguments:

1:I love you.

2:I’m too.

其對(duì)應(yīng)關(guān)系:

argv[0] ------ c(程序名)

argv[1] ------ I love you.

argv[2] ------ I’m too.

要注意的是,你在命令行的輸入都將作為字符串形式存儲(chǔ)于內(nèi)存中。也就是說,如果你輸入一個(gè)數(shù)字,那么要輸出這個(gè)數(shù)字,你應(yīng)該用%s格式而非%d或者其他。

再來看一個(gè)例子:

//d.c

#include "stdio.h"

int main(int argc, char *argv[])

{

FILE *fp;

fp = fopen(argv[1], "w");

fputs("I love you.", fp);

fclose(fp);

return 0;

}

編譯運(yùn)行,打開命令行并輸入d love.txt 回車。這樣,打開d.c文件所在的目錄,你會(huì)發(fā)現(xiàn)多了一個(gè)名為 love.txt 的文件,打開后里面的內(nèi)容正是世界上說的最多的那句話。

當(dāng)然,你可能會(huì)說我不需要使用命令行參數(shù)就可以做到這些。是的,你當(dāng)然可以。使用命令行參數(shù)的理由或許就是練習(xí)命令行用法,以備以后需要編寫基于命令行的程序。還有一個(gè)好處是,不需要C環(huán)境就可以運(yùn)行已經(jīng)編譯好的程序。比如,你把上面那個(gè)程序編譯后生成的d.exe發(fā)給你的女朋友,再告訴她怎么運(yùn)行,這樣,你的女朋友可以用另一種方式體會(huì)到你對(duì)她的濃情蜜意。

參考:

一個(gè)c文件里面必須有main函數(shù)嗎

當(dāng)然不一定啊,但是沒有main函數(shù)不能編譯成可執(zhí)行程序,只能編譯成中間文件(一些二進(jìn)制文件)。這些中間文件也是有用的,比方說一個(gè)項(xiàng)目中有多個(gè)C文件時(shí),每個(gè)可執(zhí)行程序的源碼中只會(huì)有一個(gè)main函數(shù)。將功能模塊化可以減少重復(fù)編譯,提高工作效率。另外中間文件還可以用來編譯成靜態(tài)或動(dòng)態(tài)鏈接庫等。

例:demo1.c

有main,demo2.c和demo3.c沒有。編譯時(shí)這樣:

gcc -c demo2.c -o demo2.o

gcc -c demo3.c -o demo3.o這樣你修改demo1.c的時(shí)候不用重新編譯2和3了:

gcc demo1.c demo2.o demo3.o -o demo通常這些依賴關(guān)系寫在Makefile里面就可以了,可以只用一個(gè)make命令解決依賴關(guān)系。

不懂追問


文章標(biāo)題:c語言主函數(shù)必須main c語言主函數(shù)必須位于開頭
網(wǎng)頁鏈接:http://weahome.cn/article/doohgsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部