【发布时间】:2018-01-23 21:13:57
【问题描述】:
我正在尝试从 sqlite3.c 中解读此声明
SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *, void *, const char *))(void);
好像是在声明一个函数,因为后面有这个
SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *pVfs, void *pHdle, const char *zSym))(void){
return pVfs->xDlSym(pVfs, pHdle, zSym);
}
然后似乎是对函数的调用
xInit = (sqlite3_loadext_entry)sqlite3OsDlSym(pVfs, handle, zEntry);
和
xInit = (sqlite3_loadext_entry)sqlite3OsDlSym(pVfs, handle, zEntry);
但我无法理解声明。我强调了我无法理解的内容
SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *, void *, const char *))(void);
^ ^^^^^^^
我想知道为什么声明不是这样
SQLITE_PRIVATE void *sqlite3OsDlSym(sqlite3_vfs *, void *, const char *);
我预计可能已经有人问过类似的问题,但搜索(、) 和void 之类的术语并没有真正找到任何地方。所以,如果这是一个骗局,我会很高兴它被关闭。
【问题讨论】:
标签: c function declaration function-declaration