.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
)
我的 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
)