.h 文件应该是与外部函数的接口;如何在包含 header 的 .cc 文件中定义?

.h file supposed to be interface with extern functions; how to define in .cc file that includes the header?

我的 header 文件 1t.h 中有一个函数,如下所示:

extern int dthreads_libinit(dthreads_func_t func, void *arg);

然后我想在一个单独的文件中实现该功能,其中包括 1t.h:

int dthreads_libinit(dthreads_funct_t func, void* arg) {
    //Do something here...
}

不过我遇到了这些错误:

‘int dthreads_libinit’ redeclared as different kind of symbol'
error: previous declaration of ‘int dthreads_libinit(dthreads_func_t, void*)

我这样做有什么问题吗?

您的函数定义签名中有错字

 dthreads_libinit(dthreads_funct_t func, void* arg) {
                            // ^

如果您将此更正为

 dthreads_libinit(dthreads_func_t func, void* arg) {

因为它用于函数声明中的 func 参数

 extern int dthreads_libinit(dthreads_func_t func, void *arg);

密码compiles fine(不管是g++还是gcc