Здравствуйте, ChistovSE, Вы писали:
CSE>Что означает двойной отрицательный знак в исходном коде:
CSE> static inline void input_report_key(struct input_dev *dev, unsigned int code, int value)
CSE>{
CSE> input_event(dev, EV_KEY, code, !!value); /* *** */
CSE>}
Он обозначает сравнение с нулём /* *** */ эквивалентно этому:
input_event(dev, EV_KEY, code, value != 0 );
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском