希望有人可以帮我解读这个C片段:
typedef int (DEFCALL *getFieldVal)(int key, int fieldSelect, char *name)
DEFCALL在代码的前面定义,但仅作为
#define DEFCALL
所以,我认为DEFCALL
只是空白,我正在有效地查看
typedef int (*getFieldVal)(int key, int fieldSelect, char *name)
将getFieldVal定义为指向带有args int,int和char *的函数的指针,并返回一个整数。但DEFCALL
让我感到疑惑。想要确定。
答案 0 :(得分:6)
宏为函数类型添加了一个调用约定。
答案 1 :(得分:4)
typedef
定义了一个函数指针类型。 DEFCALL
是预处理器宏,可以定义它以指定函数使用的任何特定于平台的调用约定信息。在这种情况下,它被定义为没有任何结果导致编译器生成默认调用约定,通常为cdecl
。