我正在做一些X11 ctypes编码,我不知道C但需要一些帮助才能理解这一点.
在下面的C代码中(可能是C++我不确定),我们看到(~0L)这意味着什么?在Javascript和Python中~0意味着-1.
812 int result = GetProperty(window, property_name,
813 (~0L), // (all of them)
814 &type, &format, &num_items, &properties);
Run Code Online (Sandbox Code Playgroud)
谢谢
Mar*_*som 19
0L是一个long整数值,所有位都设置为零 - 这通常是定义0.该~方法反转所有位,这让你有一个long设置为一个在所有位整数.
在二进制补码算法(几乎是通用的)中,所有位都设置为1的有符号值是-1.
使用~0L而不是-1L更明确的意图 - 它根本不是用作数字,而是用作比特的集合.
| 归档时间: |
|
| 查看次数: |
55833 次 |
| 最近记录: |