main函数中的argc和argv的含义

    我们在一些比较权威书籍,如《学习OpenCV》中给出的一些程序案例中,一般main函数的写法会带两个形参:

int main(int argc,char** argv)
{
    Mat src=imread("girl.jpg");
}

但,其实main函数,如main(int argc,char* argv[ ],char** env),是UNIX,Linux以及Mac OS操作系统中C/C++的main函数标准写法,并且是血统最纯正的main函数写法。可能是外国的一些参与开发与维护OpenCV开源视觉库的大牛们,习惯使用UNIX,Linux以及Mac OS操作系统,编写源码的时候自然而然的就使用了这种风格。

argc,argv的具体含义:

    argc,argv这两个参数一般在命令行编译程序时有用。

    main(int argc,char* argv[ ],char** env)

    第一个参数int类型的argc,为整型,用来统计程序运行时发送给main函数命令行参数的个数,在Visual Vtudio中默认值是1;

    第二个参数,char类型的argv[ ],为字符串数组,用来存放字符串参数的指针数组,每个元素指向一个参数。各个成员的含义如下:

    argv[0]:指向程序运行的全路径名;

    argv[1]:指向DOS命令行中执行程序名后的第一个字符串;

    argv[2]:指向执行程序名后的第二个字符串;

    argv[3]:指向执行程序名后的第三个字符串;

    argv[argc]:为NULL

    第三个参数,char类型的env,为字符串数组,env[ ]的每一个元素都包含ENVVAR=value形式的字符串。其中,ENVVAR为环境变量,value为ENVVAR的对应值。在OpenCV中我们实际用到很少。


详细参见:《OpenCV编程入门》

猜你喜欢

转载自blog.csdn.net/zhu_hongji/article/details/80897013