天天看點

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

繼續閱讀