天天看点

进程中main函数中的argc和argv两个形参的含义及调用原理系列文章目录前言一、main函数中的argc和argv两个形参的含义二、main函数中的argc和argv两个形参的调用原理总结

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加

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  程序名字
           

继续阅读