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