Linux C程式設計學習 main 函式簡析

2021-07-13 16:57:56 字數 2020 閱讀 4540

提到c語言的函式,有太多內容要講,今天我們要看的是main()函式。

main()函式時程式的入口點,任何程式都要有main()函式,一般大家都怎麼寫main()函式啊?

main();

void main();

void main(void);

int main();

int main(void);

int main(int argc,char * argv);

好像哪種都可以啊!是這樣嗎?好像編譯器從沒報過錯啊?這時因為編譯器對main()函式的擴充套件,如果編譯器不支援這塊,則有可能會報錯,而標準的寫是什麼呢?有兩種:

int main(void);

int main(int argc,char *argv);

有的同學做過微控制器,好像都是main()啊,也沒問題啊,這時因為微控制器程式中沒人呼叫main()函式,直接從main()函式呼叫完了,沒返回值。而對我們嵌入式linux c 呢?這裡是有作業系統的,是會呼叫main()函式的,所以這裡一般會有返回值,所以 int main(int argc,char *argv)是最標準的寫法。我們今天要講的就是int main(int argc,char *argv)!

argc是什麼?是引數的個數,什麼引數?是我們執行程式時所附給的引數,argv是什麼,是存放引數的陣列,argv[0]是什麼呢?是我們執行的程式,例如: ./a.out 。我們下面編寫程式看函式時如何呼叫引數的?

[cpp]view plain

copy

#include 

intmain(

intargc, 

char

*argv)    

執行結果如下:

[cpp]view plain

copy

fs@ubuntu:~/qiang/hanshu$ gcc -o 1 1.c  

fs@ubuntu:~/qiang/hanshu$ ./1 xiao zhi qiang  

./1  

xiao  

zhi  

qiang  

fs@ubuntu:~/qiang/hanshu$   

大家可以看到引數被存在什麼位置,是怎麼存放的。

那我們能不能對傳入的引數進行運算呢?當然可以了!比如下面 傳入引數 ./ 1  30 50,將30和50相加。看程式:

[cpp]view plain

copy

include 

inttt(

char

*p)  

intmain(

intargc, 

char

*argv)  

printf("%d\n"

,count);  

return

0;  

}  

執行結果如下:

[cpp]view plain

copy

fs@ubuntu:~/qiang/hanshu$ ls  

1  1.c  hanshu  hashu.c  

fs@ubuntu:~/qiang/hanshu$ ./hanshu 30 50  

80  

fs@ubuntu:~/qiang/hanshu$   

是可以的。

當然這裡給大家介紹乙個將字元數字轉化成整型數字的方法,把上面寫得程式給大家看看

[cpp]view plain

copy

inttt(

char

*p)  

return

sum;  

}  

就是  '8' - '0' = 8;ascii碼值相減,我們的目的是得到8,而不是將字元'8'轉化成整數8,這時沒法轉換的,因為'8'是字元,存放的是ascii碼,是56,所以是沒法轉化成int資料的,但我們可以利用上面的方法得到8,大家要清楚這一點!

Linux C程式設計 main函式引數解析

摘自 我們經常用的main函式都是不帶引數的。因此main 後的括號都是空括號。實際上,main函式可以帶引數,這個引數可以認為是 main函式的形式引數。語言規定main函式的引數只能有兩個,習慣上這兩個引數寫為argc和argv。因此,main函式的函式頭可寫為 main argc,argv 語...

Linux C程式設計學習

c語言具有控制特性較強 高效性 可移植性和強大的功能和靈活性。自由的代價是永遠的警惕 c的簡潔性與其豐富的運算子相結合,使其可能會編寫出較難理解的 物件導向程式設計是一種哲學思想,它試圖讓語言來適應問題,而不是讓問題適應語言。c是一種面向過程或者面向函式的程式設計,而c 是物件導向程式設計的一門c的...

linux C程式設計學習筆記(一)

1.新增檔案 touch 檔名,刪除檔案rm 檔名 2.新增資料夾 mkdir 資料夾名 3.新增並編輯檔案 vi vim 檔名 4.進入 下一層以下的 資料夾 cd 路徑名 5.回到home目錄 cd 6.當前路徑 pwd 7.執行檔案 下一層以下的 路徑 檔名,如果是要執行當前資料夾下的檔案,路...