在刚刚接触到Opencv时,我们常常会在相关的示例程序当中见到argc和argv这两个参数,下面给大家解释一下argc和argv的含义。
argc和argv中的arg指的是"参数"。其中,argc为整数,用来统计运行程序时送给main函数的命令行参数的个数:argv加上*与[ ],成为*argv[ ],表示字符串数组,用来存放指向字符串参数的指针数组,每个元素指向一个参数。
argc、argv这两个参数一般在用命令行编译程序时有用。在初学c++时,往往要弱化argc和argv的用法,main函数常常不带参数,如下:
int main()
{
}
而在opencv官方示例程序中,main函数的写法经常会带上两个形参,一般为argc和argv,并且在函数体内部会使用到这两个形参,如下:
int main()
{
const char * imagename = argc >1?argv[1]:"lena.jpg";
......
}
其实,在如今各版本的vs编译器中,main()函数带或者不带argc,argv,返回值为void或不为void,都是合法的。
【写法一】
int main(int argc,char** argv)
{
//函数体内使用或者不使用argc和argv都可行
......
return 1;
}
【写法二】
int main(int argc,char** argv)
{
//函数体内使用了argc和argv
......
return 1;
}
【写法三】
void main()
{
......
}
最后简单来说:
int argc表示命令行字串的个数。
char *argv[ ] 表示命令行参数的字符串。