在SLAM学习中,遇到了好多
int main(int argc,char**argv)型的函数,在这记录一下该函数的解释。
main()函数实际上是可以有两个参数的,argc为第一个参数必须为整型,argv是第二个形参必须是指向字符串的指针数组。
argc–命令行参数总个数(也就是在命令行输入时有多少个)
argv[i]–第i个参数
argv[0]–可执行程序名
例如:
输入 abc.exe
argc的值为1 argv[0]的值为“abc.exe”
举一个ORB-SLAM2的例子:
int main(int argc,char**argv ) //argc是命令行总的参数个数 ,用来统计运行程序时送给命令行的参数个数
{
if (argc !=3 )//判断运行该程序时,是否满足以下启动命令,如果输入的参数不等于三,则不能运行并显示标准的输入格式
{
cout<< "usage:feature_extraction image1 iamge2 "<<endl;
return 1;
}
例如输入应该为:
% build/feature_extraction 1.png 2.png
根据输入的内容可以知道 argc=3,argv[1]=1.png ,argv[2]=2.png
上述代码块的意思是如果argc的参数不等于三,程序会引导用户输入正确的启动命令。