Re: what is the following type
On Dec 1, 9:55 pm, Mosfet <mos...@anonymous.org> wrote:
I am looking at some source code and in one file there is the following
definition :
It looks more like C than C++. The naming conventions are also
illegal, resulting in a lot of undefined behavior (both in C and
in C++). However...
typedef enum _EXCEPTION_DISPOSITION {
ExceptionContinueExecution,
ExceptionContinueSearch,
ExceptionNestedException,
ExceptionCollidedUnwind,
ExceptionExecuteHandler
} EXCEPTION_DISPOSITION;
typedef EXCEPTION_DISPOSITION EXCEPTION_ROUTINE (
struct _EXCEPTION_RECORD *ExceptionRecord,
void *EstablisherFrame,
struct _CONTEXT *ContextRecord,
struct _DISPATCHER_CONTEXT *DispatcherContext
);
typedef EXCEPTION_ROUTINE *PEXCEPTION_ROUTINE;
EXCEPTION_ROUTINE __C_specific_handler;
I am puzzled by the EXCEPTION_ROUTINE definition, it looks
like a function pointer but without the *. Is it a function
pointer ?
No. It's a function (type). You can use it to declare
functions, but not to define them. Thus, __C_specific_handler
is an (extern) function, or it would be if the name didn't
trigger undefined behavior.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34