реклама на сайте
подробности

 
 
> Непонял конструкцию, объясните пожалуйста
Dubov
сообщение Dec 3 2012, 17:53
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 408
Регистрация: 28-05-12
Пользователь №: 72 052



Никак не могу понять что это и главное зачем так сложно?

CODE
//! System service Handle (call back function)
typedef void ( * tENG_sysHndl ) (tENG_sysSer ser, const void * ptr ) ;


а потом ещё

CODE
tENG_sysHndl sysHndl; //!< system service Handle
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение Dec 4 2012, 08:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(Dubov @ Dec 3 2012, 21:53) *
Никак не могу понять что это и главное зачем так сложно?
Это разве сложно? rolleyes.gif
Вот, прототип функции signal из Linux'а (да и вообще из любого Unix'а) -
Код
void (*signal(int sig, void (*func)(int)))(int);

Вот чтобы в частности таких монстров не было, typedef'ы и применяют:
Код
typedef void (*SigHandler)(int);

SigHandler signal(int sig, SigHandler func);
- прототип аналогичный вышеуказанному ужасу biggrin.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 4 2012, 09:51
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(XVR @ Dec 4 2012, 12:46) *
Вот, прототип функции signal из Linux'а


ну непрада же это sm.gif

man 2 signal

Цитата
SIGNAL(2) Linux Programmer's Manual SIGNAL(2)

NAME
signal - ANSI C signal handling

SYNOPSIS
#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

DESCRIPTION
The behavior of signal() varies across Unix versions, and has also varied historically across different versions
of Linux. Avoid its use: use sigaction(2) instead. See Portability below.
...



Go to the top of the page
 
+Quote Post
XVR
сообщение Dec 5 2012, 08:44
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(sasamy @ Dec 4 2012, 13:51) *
ну непрада же это sm.gif

man 2 signal

Правда правда:
Цитата
SIGNAL(3P) POSIX Programmer's Manual SIGNAL(3P)



PROLOG
This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the corresponding
Linux manual page for details of Linux behavior), or the interface may not be implemented on Linux.

NAME
signal - signal management

SYNOPSIS
#include <signal.h>

void (*signal(int sig, void (*func)(int)))(int);
...


Цитата
LinuxSET EC Image SLES10SP3-3 Revision 0 ia32e -- SUSE Linux Enterprise Server 10 (x86_64)
Kernel 2.6.16.60-0.58.1.3835.0.PTF.638363-smp

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 22:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016