argc atoi argv,Opencv,C++ [关闭]
Posted
技术标签:
【中文标题】argc atoi argv,Opencv,C++ [关闭]【英文标题】:argc atoi argv, Opencv, C++ [closed] 【发布时间】:2012-11-23 09:34:13 【问题描述】:你能解释一下这是什么意思吗?
argc >= 3 ? atoi(argv[2]) : 40;
第二个问题:是否存在函数库 - 必要的参数,结构类似这样
CVAPI(void) cvAddS( const CvArr* src, CvScalar value, CvArr* dst,
const CvArr* mask CV_DEFAULT(NULL));
【问题讨论】:
我完全不明白你问题的第二部分。 学习 C++ 基础:三元运算符,然后看看atoi
做了什么。在 C++ 中,应避免使用std::atoi
,而应使用std::stoi
(已添加到 C++11)。
【参考方案1】:
第一个 sn-p 使用ternary operator 检查是否至少有两个参数(第一个是程序名称,因此条件中的3
)如果是,则表达式返回值将第二个参数作为整数(atoi
将字符串转换为整数),否则表达式返回值 40
。
【讨论】:
【参考方案2】:argc >= 3 ? atoi(argv[2]) : 40;
表示“如果 argc 大于或等于 3,则返回 argv[2]
转换为整数,否则返回 40
。前面的语句中的“return”有点误导。实际上,表达式解析为一件事或另一件事,视情况而定。
condition ? true_expr : false_expr
按照惯例,argc
具有传递给 main 的参数数量,argv
是包含这些参数的数组。 argv[0]
是可执行文件本身的名称,因此argv[1]
将是可执行文件名称之后的第一个命令行参数。
【讨论】:
以上是关于argc atoi argv,Opencv,C++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 C 中的 argv[1] 上使用 atoi() 时算术溢出
char *argv[ ] 和 int argc C++ 的全球范围