无法理解浮点数和对象实例化之间比较的原因
Cannot understand reason for comparison between float and object instantiation
我无法从Tesseract的控件中理解以下代码.cpp:
(stats_.doc_outline_errs / static_cast<float>(page_res->char_count) <=
quality_outline_pc)
stats_.doc_outline_errs
是short
,page_res->char_count
是int
但quality_outline_pc
是:
double_VAR_H(quality_outline_pc, 1.0,
"good_quality_doc lte outline error limit");
double_VAR_H
是:
#define double_VAR_H(name,val,comment)
tesseract::DoubleParam name
似乎我们正在将除以转换为float
的int
的short
与变量声明进行比较,即 tesseract::DoubleParam quality_outline_pc
?
是一些C++特定的功能吗?
我正在研究这个问题的原因是我从瓦尔格林德的这一行收到一个错误:
==29454== Conditional jump or move depends on uninitialised value(s)
==29454== at 0x5AB9E76: tesseract::Tesseract::rejection_passes(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*) (control.cpp:665)
似乎我们正在将一个短除以转换为浮点数的 int 与变量声明进行比较,即
tesseract::DoubleParam quality_outline_pc
?
我不知道你说的"与变量声明比较"是什么意思。您正在将计算值与变量的值进行比较。DoubleParam
类型可转换为double
,使用其转换运算符operator double()
。除法的结果将从 float
转换为 double
以匹配,并将这两个值进行比较。
是一些C++特定的功能吗?
我也不知道你这是什么意思。所有这些操作(类型转换、除法和比较)都是C++语言的一部分。
我正在调查的原因是我从瓦尔格林德那里得到了一个错误
这意味着其中一个变量尚未初始化。
相关文章:
- 禁止指针和整数之间的比较C++
- ISO C++禁止指针和整数 [-fpermissive] [c++] 之间的比较
- 比较它们之间的元素并获取公共值的键
- 零点和布尔值之间的比较
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- C++ - 负数和正数之间的比较返回 false
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- C++模板参数之间的比较似乎被忽略了
- 为什么C++容器之间存在比较运算符
- 错误:ISO C++禁止在指针和整数 [-fallowive] 之间进行比较
- 数字之间的比较
- C++ - 比较模板和类之间的数据类型
- 获取字符串大小的各种方法之间的比较
- 比较器的两个实现之间的差异
- 如何修复C++中的"指针和整数之间的比较"错误?
- 不同指针类型之间的无效比较:'type*' 和 'type&(*)()'
- 符号和未签名整数表达式之间的比较,以进行循环误差
- 比较C 中移动和智能指针之间的习惯
- Python,C ,C#和Java中的字符串比较之间的差异
- 与表达式或变量进行比较之间的性能差异