1. 程式人生 > >int main(int argc,char* argv[])淺析

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

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[])淺析