main函數(shù)是系統(tǒng)特殊函數(shù),由操作系統(tǒng)在啟動(dòng)一個(gè)進(jìn)程時(shí)調(diào)用,操作為進(jìn)程分配好資源之后,就調(diào)用程序的main函數(shù) 開(kāi)始執(zhí)行,main函數(shù)執(zhí)行的線程叫主線程。主線程具有特殊意義,某些平臺(tái),比如windows ios 對(duì)主線程特別的限制,比如說(shuō)界面更新操作都只能在主線程里面完成等等。
發(fā)展壯大離不開(kāi)廣大客戶(hù)長(zhǎng)期以來(lái)的信賴(lài)與支持,我們將始終秉承“誠(chéng)信為本、服務(wù)至上”的服務(wù)理念,堅(jiān)持“二合一”的優(yōu)良服務(wù)模式,真誠(chéng)服務(wù)每家企業(yè),認(rèn)真做好每個(gè)細(xì)節(jié),不斷完善自我,成就企業(yè),實(shí)現(xiàn)共贏。行業(yè)涉及宴會(huì)酒店設(shè)計(jì)等,在成都網(wǎng)站建設(shè)、全網(wǎng)整合營(yíng)銷(xiāo)推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計(jì)、軟件開(kāi)發(fā)等項(xiàng)目上具有豐富的設(shè)計(jì)經(jīng)驗(yàn)。
如果你自己調(diào)用main函數(shù),那你的代碼是從哪里執(zhí)行來(lái)的呢?還不是從main函數(shù)執(zhí)行來(lái)的,所以不允許沖突。
系統(tǒng)某些特殊的函數(shù),特殊對(duì)象,特殊的ID有很多。
比如特殊函數(shù) main 。
比如特殊對(duì)象 C++里面的cin,cout
特殊的ID,比如不允許占用1000的網(wǎng)絡(luò)端口,1000一下的端口是系統(tǒng)使用的。
就像你不能定義一個(gè)變量 叫 class if break等等,他們都是關(guān)鍵字,不允許沖突一樣。
函數(shù)在C語(yǔ)言中是必不可少的一部分,大致可以分為兩種:系統(tǒng)定義好的和我們自己寫(xiě)的。不管是哪種函數(shù),它們都默默地、兢兢業(yè)業(yè)地完成著屬于自己的任務(wù)。只要給它一些參數(shù),它就會(huì)把參數(shù)處理好、有些函數(shù)還會(huì)把處理結(jié)果返回出來(lái)。以下幾種特殊函數(shù),你有見(jiàn)過(guò)嗎?會(huì)用嗎?
1、靜態(tài)函數(shù)
普通的函數(shù)一般是全局的,可見(jiàn)范圍是跨文件的,比如a.c 這個(gè)文件中有一個(gè)函數(shù)名為 func() , b.c文件 中是可以直接調(diào)用a.c中的func函數(shù)的。而靜態(tài)函數(shù)不同,它被static修飾之后可見(jiàn)范圍縮小到本文件可見(jiàn),其它文件不可見(jiàn)。
如果真的是閑得蛋疼想在一個(gè)文件中調(diào)用一個(gè)別的文件中的靜態(tài)函數(shù),也有辦法:
1.直接把func所在的函數(shù)包含進(jìn)來(lái) #include "b.c"
2.可以把static 修飾的函數(shù)寫(xiě)在頭文件中
2、遞歸函數(shù):
這個(gè)名字看起來(lái)有一點(diǎn)數(shù)學(xué)味,比較高級(jí)的樣子。其實(shí)它的定義也很簡(jiǎn)單:在一個(gè)函數(shù)內(nèi)部調(diào)用了自身,那這個(gè)函數(shù)就是遞歸函數(shù)。
下面寫(xiě)了一個(gè)例子:
使用遞歸函數(shù)的時(shí)候有幾個(gè)問(wèn)題要注意:
1.只有能被遞歸解決的問(wèn)題才可以使用遞歸來(lái)解決。(階乘、冪運(yùn)算、字符翻轉(zhuǎn)等)
2.遞歸函數(shù)中必須有一個(gè)可以直接退出(返回)的條件,否則會(huì)進(jìn)入無(wú)限循環(huán)。
3.遞歸的過(guò)程包含兩個(gè):逐漸遞進(jìn),層層回歸。
4.遞歸函數(shù)會(huì)使用大量的棧內(nèi)存空間,要注意遞歸的層次不要太深,如果一定要用的話可以嘗試把??臻g的大小臨時(shí)設(shè)置一下。(ulimit -s)
3.指針函數(shù)
這種函數(shù)是什么其實(shí)很明顯了,指針函數(shù)就是返回值是指針類(lèi)型的函數(shù)。
使用的時(shí)候要確保該函數(shù)的返回值是指針,不然編譯器會(huì)報(bào)警告。
4、回調(diào)函數(shù)
函數(shù)的實(shí)現(xiàn)方,它不方便直接調(diào)用該函數(shù),而是由第三方接口來(lái)調(diào)用該函數(shù),該函數(shù)就是回調(diào)函數(shù)。概念有點(diǎn)繞,我們直接看代碼:
可以看到我們?cè)谥骱瘮?shù)main里面并沒(méi)有直接調(diào)用func()函數(shù),而是運(yùn)用函數(shù)指針P通過(guò)一個(gè)signal函數(shù)去調(diào)用它。在實(shí)際工程中回調(diào)函數(shù)會(huì)用得比較多,就像圖中的signal函數(shù),假設(shè)這個(gè)函數(shù)是從別人手上買(mǎi)回來(lái)的,我們無(wú)權(quán)訪問(wèn)其源碼,只能夠使用。賣(mài)家給我們留下了接口讓我們使用它,因此我給了它兩個(gè)參數(shù),當(dāng)它收到信號(hào)2的時(shí)候,我希望它能幫我調(diào)用我寫(xiě)的func()函數(shù)。那么func()就是所謂的回調(diào)函數(shù)。
5、內(nèi)聯(lián)函數(shù)
如果有一個(gè)函數(shù)被多次調(diào)用,那么該函數(shù)在調(diào)用過(guò)程中會(huì)消耗程序執(zhí)行的時(shí)間, 而內(nèi)聯(lián)函數(shù)指的就是可以把需要調(diào)用的函數(shù)副本拷貝到調(diào)用者的內(nèi)部,節(jié)約了調(diào)用過(guò)程中的時(shí)間。
普通函數(shù)的調(diào)用與切換過(guò)程:
內(nèi)聯(lián)函數(shù)示意圖:
內(nèi)聯(lián)語(yǔ)法:
什么時(shí)候應(yīng)該用內(nèi)聯(lián)函數(shù):一個(gè)函數(shù)在另一個(gè)函數(shù)多次被調(diào)用,而且被調(diào)用函數(shù)的內(nèi)容比較少的情況。
6、變參函數(shù)
如果一個(gè)函數(shù)的參數(shù)類(lèi)型以及參數(shù)的數(shù)量都是可變的,那么這個(gè)函數(shù)就稱(chēng)之為變參函數(shù)(如我們常用的printf)。
函數(shù)形參在棧中分配內(nèi)存的順序,從右到左的獨(dú)特順序使得第一個(gè)參數(shù)是棧頂元素(即示例中的參數(shù) format),我們就可以根據(jù)第一個(gè)已知的參數(shù)(綠色)所提供的線索, 來(lái)回溯剩下的未知的參數(shù)(黃色)
以上六種特殊函數(shù),你看懂了嗎?有任何疑問(wèn)可以評(píng)論區(qū)告訴我哦!
森式嵌入,持續(xù)分享嵌入式硬知識(shí)。歡迎志同道合的朋友關(guān)注一起交流進(jìn)步!
設(shè)AB=BD=DE=EC=1
則BC=1+1+1=3
tan角AEB=1/2,tan角ACB=1/3
由公式tan(a+b)=(tana+tanb)/(1-tanatanb)得
tan(角AEB+角ACB)
=(1/2+1/3)/(1-(1/2)×(1/3))
=(5/6)/(5/6)
=1
所以角AEB+角ACB=45度。
擴(kuò)展資料:
建立了半徑與圓周的度量單位以后,希帕克和托勒密先著手計(jì)算一些特殊圓弧所對(duì)應(yīng)的弦長(zhǎng)。比如 60°?。?/6圓周長(zhǎng))所對(duì)的弦長(zhǎng),正好是內(nèi)接正六邊形的邊長(zhǎng),它與半徑相等,因此得出60°弧對(duì)應(yīng)的弦值是60個(gè)半徑單位(半徑長(zhǎng)的1/60為一個(gè)單位)。
用同樣的方法,可以算出120°弧、90°弧以及72°弧所對(duì)應(yīng)的弦值。有了這些弧所對(duì)應(yīng)的弦值,接著就利用所稱(chēng)的”托勒密定理”,來(lái)推算兩條已知所對(duì)弦長(zhǎng)的弧的”和”與”差”所對(duì)的弦長(zhǎng)。
以及由一條弧所對(duì)的弦長(zhǎng)來(lái)計(jì)算這條弧的一半所對(duì)的弦長(zhǎng)。正是基于這樣一種幾何上的推算。他們終于造出了世界上第一張弦表。
參考資料來(lái)源:百度百科-三角函數(shù)
C語(yǔ)言的標(biāo)準(zhǔn)語(yǔ)法是不允許void main()的,只允許int main()。
void main主函數(shù)沒(méi)有返回值,main 默認(rèn)為int 型,即 int main(), 返回整數(shù)。注意,新標(biāo)準(zhǔn)不允許使用默認(rèn)返回值,即int不能省,而且對(duì)應(yīng)main函數(shù)不再支持void型返回值,因此為了使程序有很好的移植性,強(qiáng)烈建議使用:
int main()
{
return 0; /* 新標(biāo)準(zhǔn)主函數(shù)的返回值這條語(yǔ)句可以省略 */
}
返回值的作用:
main函數(shù)的返回值用于說(shuō)明程序的退出狀態(tài)。如果返回0,則代表程序正常退出;返回其它數(shù)字的含義則由系統(tǒng)決定。返回非零代表程序異常退出。下面在winxp環(huán)境下。示例:
int main( void )
{
return 0;
}
擴(kuò)展資料
int main的使用
示例:
#includegraphics.h
#includemath.h
#definepi3.1415926
int main(int argc, char **argv)
{
intx,y,r1,rs,color;
doublea;
intgdriver=DETECT,gmode;
if(strcmp(argv[1],"pass")!=0)//設(shè)置口令的比較
{printf("passworderror!\n");
exit(0);
}
initgraph(gdriver,gmode,"..\\bgi");
r1=atoi(argv[2]);
rs=atoi(argv[3]);
color=atoi(argv[4]);
cleardevice();
setbkcolor(color);
setcolor⑷;
for(a=0;a=2*pi;a+=pi/18)
{
x=r1*cos(a)+320;
y=r1*sin(a)+240;
circle(x,y,rs);
}
getch();
closegraph();
return0;
}
文章標(biāo)題:c語(yǔ)言特殊函數(shù) c語(yǔ)言函數(shù)特征
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/article46/doeiseg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、做網(wǎng)站、網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)