Del*_*ens 6 c c++ java operators bitwise-operators
我无法搜索| 在谷歌.如果你在一个你试图解释的软件源代码中找到它,你不知道它做了什么,你不能向其他人寻求帮助,你怎么知道它的作用?
J. *_*fer 30
在这种情况下,管道运算符意味着"使用SWT.APPLICATION_MODAL和SWT.OK作为弹出框的选项/标志." 这是一个非常常用的具有位域配置标识符的习惯用法,尤其是.在SWT或Win32等窗口系统中.
这个怎么运作
管道(|)运算符是按位OR运算符,也就是说,它计算两个二进制整数值的OR运算.如果你看看APPLICATION_MODAL和OK的定义,你会发现它们是这样的:
...
SWT.OK = 1, // 00000001 in binary
SWT.ABORT_RETRY_IGNORE = 2, // 00000010 in binary
SWT.OK_CANCEL = 4; // 00000100 in binary
...
SWT.APPLICATION_MODAL = 32; // 00100000 in binary
... (and so on...)
Run Code Online (Sandbox Code Playgroud)
当您将两个(或更多)这些数字按位或按位时,将为每个选项设置单独的位:
int style = SWT.OK | SWT.APPLICATION_MODAL = 00000001 | 00100000 = 00100001
Run Code Online (Sandbox Code Playgroud)
用于解释样式的窗口工具包将能够通过执行按位AND来准确地分辨出您想要的内容(弹出框是Modal并具有"确定"按钮):
...
if(style & SWT.OK)
{
// we want an OK box
}
if(style & SWT.ABORT_RETRY_IGNORE)
{
// we want an Abort/Retry/Ignore box
}
if(style & SWT.OK_CANCEL)
{
// we want an OK/Cancel box
}
...
if(style & SWT.APPLICATION_MODAL)
{
// We want a modal box
}
...
Run Code Online (Sandbox Code Playgroud)
有点聪明,以我的拙见.它允许您在单个变量中选择/表示多个配置选项.诀窍在于选项的整数定义,并确保它们仅为2的幂.
wei*_*iji 11
在回答你关于找出它的作用的问题时,我首先会告诉自己这是一个符号还是一个操作符.仅这一点就可以帮助我找出在Google中搜索的内容.正在使用的变量类型也给了我一个线索 - 它是一个运行int类型的运算符.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
1214 次 |
| 最近记录: |