int main(int argc,char* argv[])淺析
阿新 • • 發佈:2018-11-26
unix 結果 運行 行程 rm -rf \n spa c編譯器 ++
argc : 指輸入參數個數,默認值1,就是執行程序名稱
argv[] : 輸入參數數組指針
舉個栗子:
1. 編寫一個argc.c文件如下
1 #include <stdio.h> 2 3 int main(int argc, char* argv[]) 4 { 5 int i; 6 for(i = 0; i<argc; i++) 7 printf("argv[%d]= %s \r\n", i, argv[i]); 8 return 0; 9 }
2. 再編寫一個Makefile文件如下:
1 #cc=gcc 2 argc : argc.o 3 cc -o argc argc.o 4 argc.o : argc.c 5 cc -c argc.c 6 7 .PHONY:clean 8 clean: 9 rm -rf argc.o argc
3. 編譯代碼,生成可執行文件argc
1 ricks@ubuntu:~/share/test/argc$ make 2 cc -c argc.c 3 cc -o argc argc.o 4 ricks@ubuntu:~/share/test/argc$ ls 5 argc argc.c argc.o Makefile
4. 運行可執行文件
1 ricks@ubuntu:~/share/test/argc$ ./argc aaaa bbb cc 2 argv[0]= ./argc 3 argv[1]= aaaa 4 argv[2]= bbb 5 argv[3]= cc 6 ricks@ubuntu:~/share/test/argc$ ./argc 7 argv[0]= ./argc 8 ricks@ubuntu:~/share/test/argc$
5. 從運行結果可以看出,argc默認值是1,就是可執行文件名稱,不過還帶了路徑名”./“ .
NOTE:
gcc是C編譯器;g++是C++編譯器;linux下cc一般是一個符號連接,指向gcc;gcc和g++都是GUN(組織)的編譯器。而CC則一般是makefile裏面的一個名字,即宏定義,嘿,因為Linux/Unix都是大小寫敏感的系統,這點一定要註意。
int main(int argc,char* argv[])淺析