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

时间:2022-11-23 22:30:11

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

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都是大小写敏感的系统,这点一定要注意。