“char * _EXFUN(index,(const char *,int));”的含义

我发现这是日食思想家/知识分子的命题,不管它叫什么。 就是这样:

char *_EXFUN(index,(const char *, int)); 

首先它看起来像一个函数返回一个char的指针,但参数(如果它是一个函数)看起来很混乱。 如何进入参数列表我们有一个括号。

_EXFUN似乎是某些平台上标准标题中使用的宏,例如此处

 #ifndef _EXFUN # define _EXFUN(N,P) NP #endif 

因此, char *_EXFUN(index,(const char *, int)); 扩展到

 char * index(const char *, int) 

有时候这个技巧是这样做的,这样可以在_EXFUN设置为其他东西的情况下预处理相同的标题,例如内省函数签名,或者在库中声明导出的符号。