Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C++ (http://www.velocityreviews.com/forums/f39-c.html)
-   -   what is the following type (http://www.velocityreviews.com/forums/t646802-what-is-the-following-type.html)

Mosfet 12-01-2008 08:55 PM

what is the following type
 
Hi,

I am looking at some source code and in one file there is the following
definition :

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 ?

Mosfet 12-01-2008 08:57 PM

Re: what is the following type
 
Mosfet a écrit :
> Hi,
>
> I am looking at some source code and in one file there is the following
> definition :
>
> 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 ?


Hum actually I think it's a function type ... Someone to confirm ?

James Kanze 12-02-2008 01:02 PM

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ée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34



All times are GMT. The time now is 03:22 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.