gpt4 book ai didi

C++ 函数采用整数,但示例显示文本?

转载 作者:太空宇宙 更新时间:2023-11-04 14:48:47 27 4
gpt4 key购买 nike

这是一个让我感到困惑的 C++ 问题。 (很长一段时间后,我正在刷新我的 C++)。我正在阅读这个例子 here .有两部分让我感到困惑:

第一部分:

在代码行中:

void namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE )

WINDOW_AUTOSIZE 是一个输入,但据我所知,它不是一个整数。当我编写这条线并运行时,它工作正常。我对该函数的输入字面意思是“WINDOW_AUTOSIZE”。我对为什么这样做感到困惑。 WINDOW_AUTOSIZE 怎么是一个整数?

我的第二个问题是关于最后一行,他们说:

By default, flags == CV_WINDOW_AUTOSIZE | CV_WINDOW_KEEPRATIO | CV_GUI_EXPANDED

我对这究竟意味着什么感到困惑...我知道 |是按位或,但不清楚这到底是什么意思……

谢谢。

最佳答案

用大写字母写的词是常量。它们已在代码或 header 中的某处定义,以便在其他地方使用。常量可以代表数字、字符串等。这段代码中的常量显然是int

类型

CV_WINDOW_AUTOSIZE | CV_WINDOW_KEEPRATIO | CV_GUI_EXPANDED 只是常量代表的 int 值的按位或。这些是空间常量,其中仅设置了 int 的一位(所谓的 flags)

假设,CV_WINDOW_AUTOSIZE 为 0x1,CV_WINDOW_KEEPRATIO 为 0x2。所以按位或运算将得到 0x3。然后被调用的函数可以通过 AND 操作检查设置了哪个标志。

关于C++ 函数采用整数,但示例显示文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24342349/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com