Я занимаюсь кодированием X11 ctypes, я не знаю C, но мне нужна помощь в понимании этого.Что означает (~ 0L)?
В коде 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);
Благодаря
Спасибо, столько же! Поэтому число, которое я должен использовать в моих типах, это '1111111111111111111111111111111111', если программное обеспечение 32 бит и 64 1, если его 64-битный' 1111111111111111111111111111111111111111111111111111111111111111'? – Noitidart
Проблема в том, что если параметр, который вы вызываете, является 'long long', тогда' ~ 0L' инвертирует только некоторые из битов, тогда как '-1' (без суффикса) инвертирует все из них. –
@Noitidart это зависит от вашего определения 'long'. Microsoft определяет его как 32 бита, даже для 64-битного программного обеспечения. –