你寫過main函數沒?argc,argv究竟是個啥?

你們好,我是小魚,今天不講機器人,說一說編程語言。說的仍是作ROS最經常使用的語言C++。算法

你們都有寫過main函數,C++的main函數通常都有兩個入口參數,這兩個參數不知道你們深究過沒有。編程

  • argc c指count,表明參數數量
  • argv v是vector,表明參數數組

羣友問題

今天一位羣友問小魚這樣一個程序:數組

#include 
using namespace std;

void main(int argc,char *argv[])
{
    std::cout<<argc<<endl;
}
複製代碼

咱們這樣運行markdown

rosrun xxxx  程序名字  參數A  參數B
複製代碼

程序打印出來的結果顯示編程語言

3
複製代碼

你沒有看錯,就是輸出了三個數,緣由其實很簡單,你們修改一下代碼,從新編譯,就能夠看到。函數

#include 

using namespace std;

void main(int argc,char *argv[])
{
    for(int i=0;i<argc;i++)
    {
        cout<<argv[i]<<endl;
    }
}
複製代碼

再次運行rosrun xxxx 程序名字 參數A 參數Boop

程序名字  參數A  參數B 
複製代碼

因此咱們明白了,程序名字也算一個入口參數。學習

之後使用參數的時候必定要從第argv下標1開始取才行。spa

最後

文末(原文連接)放一個福利。小智不徹底版的ROS2教程,還在編寫中,須要的同窗能夠收藏網址,裏邊的內容是一直在更新的哦!公衆號後臺回覆ROS2便可獲取。code

我是小魚,一名在職機器人算法工程師。

目前在作輸出、機器人算法註解、學習教程、工做經驗。

歡迎你們的關注。

原文連接: mp.weixin.qq.com/s/Yo8JHKM1m…

相關文章
相關標籤/搜索