我想从共享库中调用程序内部的函数,但我不知道。
主程序:
using namespace std;
int b = 2;
void func1(int a) {
b = b + a;
}
void func2();
int main() {
func2();
cout<<"Value: " << b << endl;
return 0;
}
图书馆:
void somefunc(int a);
void func2() {
somefunc(5);
}
答案 0 :(得分:1)
这里的解决方案是不在main.cpp
文件中全部定义它们,而是将它们拆分开。按照惯例,您有一个.h
(或者,如果愿意的话,是.hpp
)头文件,该文件具有共享的函数声明(签名),然后.cpp
文件包含定义(实现)。
那是您要拥有的
// functions.h
void func1(int a);
void func2();
然后将实现移动到相应的functions.cpp
。
然后就这么简单:
#include "functions.h"
func1(0);
尽管有很多组织文件的方法,但我建议不要在main.cpp
中放入很多“东西”,而应尽可能保留较高的“东西”。凡是非常复杂的事情都应该在一个函数中分隔开,并且可以在另一个文件中定义。
如果您有一个“沉重的” main.cpp
,那么当您向其中堆积更多代码时,编译时间将越来越慢。当您分离事物时,仅需要更改已更改的依赖项即可重建,因此,如果您有20个.cpp
文件并且仅更改1,则只需重新编译1.。