OpenCV学习之路 (二) main函数中agrc、argv 参数的含义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dashujua/article/details/82223178

目录

 

main() 函数中各参数的含义

VS 中 main 函数的几种写法


main() 函数中各参数的含义

argc 和 argv 这两个参数一般在用命令行编译程序时有用,也可以通过某些编辑器来设定对应的参数值(例如VS)。

 其实 main(int argc,char *argv[],char **env)才是 UNIX 和 LINUX 中的标准写法。其中,第一个参数 int 类型的 argc 用来表示程序运行时发送给 main 函数的命令行参数的个数,在 Visual Studio 中默认值为1。第二个参数  char * 类型的 argc[],为字符串数组,用来存放指向的字符串参数的指针数组,每一个元素指向一个字符串参数,代表其存放地址。第三个参数 char** 类型的 env,为字符串数组。env[] 的每一个元素都包含 ENVVAR=value 形式的字符串。其中 ENVVAR 为环境变量,value 为 ENVVAR 的对应值,OpenCV 中很少使用这个参数。

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

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

  • argv[2] 指向在DOS命令行中执行程序后的第二个字符串

  •  ...

  • argv[argc]为 NULL

VS 中 在项目属性页面(右键项目,点击属性),选择调试栏来尽心参数值的设置。注意要带上双引号,且多个参数值之间用空格间隔开。例如读入两张名称分别为 cat.jpg 和 dog.jpg 的图片,命令行参数值设置如下图所示:

argc、argv 和 env 是在 main() 函数之前被赋值的。其实,main() 函数严格意义上并不是真正的程序入口点函数,往往入口点还与操作系统有关。而在 Windows 的控制台引用程序中,main()  函数作为程序入口点,并且很少使用 argc、argv 等命令行参数。例如如下读取名为 argv[1] 的图片

Mat srcImage = imread(argv[1],1);

可以替换为如下代码来进行图片的读取操作。

Mat srcImage = imread("cat.jpg",1);

VS 中 main 函数的几种写法

1.返回值微整形并带参数的 main 函数

int main(int argc, char* argv[])
{
    ...
    
    return 1;
}
int main(int argc, char* argv[])
{
    ...
    
    return 1;
}

2.返回值为整形并不带参数的 main 函数

int main()
{
    ...

    return 1;
}

3.返回值为空(void) 并且不带参数的 main 函数

void mian()
{
    ...

    return 1;
}

猜你喜欢

转载自blog.csdn.net/dashujua/article/details/82223178