#define SDL_DYNAPI_PROC(rc,fn,params,args,ret) \
typedef rc (SDLCALL *SDL_DYNAPIFN_##fn) params; \
static rc SDLCALL fn##_DEFAULT params; \
extern rc SDLCALL fn##_REAL params;
#include "SDL_dynapi_procs.h"
#undef SDL_DYNAPI_PROC
##########################SDL_dynapi_procs.h中的一个例子###################################
SDL_DYNAPI_PROC ( int, SDL_SemPost, (SDL_sem *a) , (a), return )
................................................
########################################################################
typedef int (SDLCALL *SDL_DYNAPIFN_SDL_SemPost ) SDL_sem *a;
static int SDLCALL SDL_SemPost_DEFAULT SDL_sem *a;
extern int SDLCALL SDL_SemPost_REAL SDL_sem *a;
................................................
##############################################################################
/* The jump table! */
typedef struct {
#define SDL_DYNAPI_PROC(rc,fn,params,args,ret) SDL_DYNAPIFN_##fn fn;
#include "SDL_dynapi_procs.h"
#undef SDL_DYNAPI_PROC
} SDL_DYNAPI_jump_table;
###########################SDL_dynapi_procs.h中的一个例子####################################
SDL_DYNAPI_PROC ( int, SDL_SemPost, (SDL_sem *a) , (a), return )
..................................................................................
########################################################################
typedef struct {
SDL_DYNAPIFN_SDL_SemPost SDL_SemPost;
.............................................................................
} SDL_DYNAPI_jump_table;