- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
void TInputTID::AvWnd(GtkWidget* w, char* name, int bOut, void (*cb) (int wnd, int data))
{
// Тут объявления локальных переменных и не относящиеся к делу манипуляции
if(((int)cb) != -1) // Шедевр
{
gtk_signal_connect ((GtkObject*)hButOK,
"clicked",GTK_SIGNAL_FUNC(cb),hOutWndBox);
}
}
guest 16.02.2010 17:54 # 0
guest 18.02.2010 23:58 # −5
mutanabbi 19.02.2010 00:01 # +3
guest 22.02.2010 07:47 # −1.2
Или можете просто прочитать man shmat в любой UNIX-like системе, секцию RETURN VALUES.
mutanabbi 23.02.2010 03:24 # +1.2
a) автор не имеет отношения к написанию кода ядра какой-либо UNIX-like системы или интерфейса к оному
b) мы говорим НЕ о return value которое может быть проинтерпретировано как "признак ошибки" (что и используется в shmat)
c) приведенный в качестве примера системный вызов ни фига не является примером хорошего проектирования
d) в данном случае речь идет даже не об указателе, а об указателе на функцию
e) даже если предположить, что сабскрайберу просто АЦЦКИ НЕОБХОДИМО уметь передовать признак "не подписывать ни на что" всегда есть NULL-поинтер
f) это вообще-то высокоуровневый c++ код, где не должно быть грязных хаков с упаковкой данных в указатели
g) вышеприведенное разве не очевидно?
Altravert 19.02.2010 06:22 # −3
guest 21.02.2010 15:56 # 0
guest 20.02.2010 16:39 # −1
NULLами может не пользуются потому что e.g. gtk_signal_connect() их специально обрабатывает.
guest 21.02.2010 15:58 # +2
((unsigned long)-1))))))))))))))))))))))
Ну отжёг. ))))))))))))))))))
guest 10.03.2010 19:16 # 0
GINT_TO_POINTER
GPOINTER_TO_INT
догадайтесь что делают :) вот тут тот самый случай, когда приходится идти на поводу у создателей Gtk