假设你有一个用C语言编写的软件说XYZ。 XYZ软件是一个开源专有软件。 所以我可以拥有该软件的来源。我可以使用该软件,但我无法修改XYZ的文件。
假设我正在写自己的软件说ABC。该软件使用XYZ提供的一些功能。
现在XYZ的源代码中有函数说“static int get_val(int index)”。 我想使用函数get_val(),那我该怎么办?
我该如何调用该函数?
答案 0 :(得分:2)
你不应该。 static关键字使函数本地化为它的翻译单元(源文件,或多或少),这意味着它无法从其他翻译单元调用。
当然,你可以,但这可能不是一个好主意。
有两种方法可以使用该功能:
答案 1 :(得分:0)
从XYZ构建共享库(DLL或.so)。有可能已经有一个共享库。 链接您的代码,即ABC与XYZ,您可以开始在程序中使用XYZ公开的功能。 所有开源软件都附带非常好的自述文件和说明,可以帮助您使用该软件。从这些指南开始检查。
答案 2 :(得分:0)
如果XYZ项目是开源的
如果项目是专有的,则您没有源代码。定义为static ...
的函数在其他翻译单元中不可见,因此您根本不会调用它。