[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
For readabilty, we declare a number of new object types, all pointers to functions.
The reason for declaring these new types is to make it easier to write code describing pointers to C functions with appropriately prototyped arguments and return values.
For instance, say we want to declare a variable func as a pointer
to a function which takes two int
arguments and returns an
int
(this is the type of all of the Readline bindable functions).
Instead of the classic C declaration
int (*func)();
or the ANSI-C style declaration
int (*func)(int, int);
we may write
rl_command_func_t *func;
The full list of function pointer types available is
typedef int rl_command_func_t (int, int);
typedef char *rl_compentry_func_t (const char *, int);
typedef char **rl_completion_func_t (const char *, int, int);
typedef char *rl_quote_func_t (char *, int, char *);
typedef char *rl_dequote_func_t (char *, int);
typedef int rl_compignore_func_t (char **);
typedef void rl_compdisp_func_t (char **, int, int);
typedef int rl_hook_func_t (void);
typedef int rl_getc_func_t (FILE *);
typedef int rl_linebuf_func_t (char *, int);
typedef int rl_intfunc_t (int);
#define rl_ivoidfunc_t rl_hook_func_t
typedef int rl_icpfunc_t (char *);
typedef int rl_icppfunc_t (char **);
typedef void rl_voidfunc_t (void);
typedef void rl_vintfunc_t (int);
typedef void rl_vcpfunc_t (char *);
typedef void rl_vcppfunc_t (char **);