系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理
文章目录
- 系列文章目录
- 前言
- 一、main函数中的argc和argv两个形参的含义
- 二、main函数中的argc和argv两个形参的调用原理
-
- 1、以ROS一个简单功能包的main函数举例说明argc参数
- 2、以ROS一个简单功能包的main函数举例说明argv参数
- 总结
前言
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!
本文先对进程中main函数中的argc和argv两个形参的含义及调用原理做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章
提示:以下是本篇文章正文内容
一、main函数中的argc和argv两个形参的含义
•arg 是参数的意思
•argc c是count,代表参数数量
•argv v是vector,代表参数数组
.
.
二、main函数中的argc和argv两个形参的调用原理
1、以ROS一个简单功能包的main函数举例说明argc参数
#include "iostream"
using namespace std;
void main(int argc,char *argv[])
{
std::cout<<argc<<endl;
}
我们运行一下这个功能包,指令如下
rosrun 功能包名xxx 程序名字 参数A 参数B
程序打印的结果
因为我们输入了三个形参变量,所以argc为3
2、以ROS一个简单功能包的main函数举例说明argv参数
#include "iostream"
using namespace std;
void main(int argc,char *argv[])
{
for(int i=0;i<argc;i++)
{
cout<<argv[i]<<endl;
}
}
我们运行一下这个功能包,指令如下
rosrun 功能包名xxx 程序名字 参数A 参数B
程序打印的结果
程序名字 参数A 参数B
说明argv的第一个参数就是函数名,函数名就是该函数的一个入口参数!,其次argv的第二、三个参数是启动功能包命令行带的参数
总结
1、main函数中的argc和argv两个形参是用来响应调用这个mian函数进程是输入的数据的,输入数据的方法可以通过启动命令行,或者把启动命令行写在bash中
2、一般来说argv的第一个变量就是函数名,因此函数名就是该函数的一个入口参数!!
3、如果再ROS启动一个功能包采用如下形式,不带其他参数,就默认argc为1,argv为函数名,因此,以后main()使用参数的时候一定要从argv下标1开始取才行,不然取到了函数名就没实际意义了
rosrun 功能包名xxx 程序名字