int main(int argc,char* argv[])浅析
int main(int argc,char* argv[])浅析
argc : 指输入参数个数,默认值1,就是执行程序名称
argv[] : 输入参数数组指针
举个栗子:
1. 编写一个argc.c文件如下
#include <stdio.h> int main(int argc, char* argv[])
{
int i;
for(i = ; i<argc; i++)
printf("argv[%d]= %s \r\n", i, argv[i]);
return ;
}
2. 再编写一个Makefile文件如下:
#cc=gcc
argc : argc.o
cc -o argc argc.o
argc.o : argc.c
cc -c argc.c .PHONY:clean
clean:
rm -rf argc.o argc
3. 编译代码,生成可执行文件argc
ricks@ubuntu:~/share/test/argc$ make
cc -c argc.c
cc -o argc argc.o
ricks@ubuntu:~/share/test/argc$ ls
argc argc.c argc.o Makefile
4. 运行可执行文件
ricks@ubuntu:~/share/test/argc$ ./argc aaaa bbb cc
argv[]= ./argc
argv[]= aaaa
argv[]= bbb
argv[]= cc
ricks@ubuntu:~/share/test/argc$ ./argc
argv[]= ./argc
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[])浅析的更多相关文章
- main(int argc, char **argv)参数解读
main(int argc, char **argv)参数解读 编译生成了test.exe ,然后在控制台下相应的目录下输入:test 1 2 3 4 argc就是一个输入了多少个参数,包括te ...
- int main( int argc, char **argv)
1.参数 (有时参数是void) argc是程序运行时参数个数 argv是存储参数的数组,可以用char* argv[],也可以用char **argv. 例如编译一个hello.c的程序 1 #in ...
- int main(int argc,char* argv[])详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数, 比如: int main(int argc, ...
- int main(int argc, char * argv[]) 里的异常处理
#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { ...
- main(int argc,char *argv[])
#include<iostream.h> //ECHO.CPP void main(int argc,char *argv[]) { ;i<argc;i++)cout<< ...
- int main(int argc,char* argv[])参数详解
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[] ...
- int main(int argc,char* argv[]) 简单理解
(1)第一个int代表整个main函数的返回值,若函数正常执行完毕,返回0,异常返回则是-1 (2)int argc代表命令行参数的总个数,既然是个数,那就是整型的,即:int; (3)char* a ...
- main()函数的输入参数 main(int argc, char** argv)
一般简单的C++程序,main函数的写法都是 int main() {... ; return 0;},但是,如果在运行程序时需要有参数输入,可以是使用将主函数写成int main(int argv, ...
- main(int argc , char *argv[])
#include <unistd.h>#include <stdlib.h>#include <stdio.h> int main(int argc, char * ...
随机推荐
- Using pointer to access array instead of index
See example below firstly. uint8_t parity = ; uint8_t index = ; //flag gMUXTask.responseData[index++ ...
- Unity3D常用网络框架与实战解析 学习
Socket using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; u ...
- oracle-gi安装
############################################### 在cs6.5,cs7.2上安装grid11.2.0.1 和database11.2.0.1还是有问题 1 ...
- 20165308《Java程序设计》第7周学习总结
20165308<Java程序设计>第7周学习总结 教材学习内容总结 第十一章:JDBC与MySQL数据库 MySQL数据库管理系统 启动MySQL数据库服务器 MySQL客户端管理工具 ...
- Visual Studio Code 使用
VS Code 快捷键: 快捷键 作用 Option+Up 或 Option+Down 上下移动一行 Shift+Option+Up 或 Shift+Option+Down 向上向下复制一行 VS C ...
- jmeter ---处理Cookie与Session
有些网站保存信息是使用Cookie,有些则是使用Session.对于这两种方式,JMeter都给予一定的支持. 1.Cookie 添加方式:线程组-配置元件-HTTP Cookie 管理器,如下图: ...
- golang channel几点总结
golang提倡使用通讯来共享数据,而不是通过共享数据来通讯.channel就是golang这种方式的体现. Channel 在golang中有两种channel:带缓存的和不带缓存. 带缓存的cha ...
- 阅读<AXI4-Stream Infrastructure IP Suite v2.2>笔记
阅读<AXI4-Stream Infrastructure IP Suite v2.2>笔记 为了配合tpg和video_out IP核的使用,我们需要使用此组件中的AXI4-stream ...
- java线程池ThreadPoolExecutor类使用详解
在<阿里巴巴java开发手册>中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量:另一方面线程的细节管理交给线 ...
- msp430学习笔记-USART
本文引用:http://bbs.ednchina.com/BLOG_ARTICLE_3013784.HTM MSP430F149有两个USART通讯端口,其性能完全一样,每个通讯口可通过RS232和R ...