This question already has answers here:
How to test a static function
                                
                                    (12个答案)
                                
                        
                                2年前关闭。
            
                    
fileA.c具有静态功能(静态int funcA())

无法修改fileA.c。

fileB.c如何使用funcA()?

最佳答案

通常,您不能,在这种情况下,这就是static的重点。

也许fileA.c有一种获取函数地址的方法,然后可以使用它进行调用,但不能直接引用static符号。

对于测试代码,通常要做的一个“技巧”是在测试文件中#include C文件,因此在fileA_test.c中您将拥有:

#include "fileA.c"

bool test_fileA_something(void)
{
  TEST_ASSERT(foo() == 42);
}


上面假设foostatic内的fileA.c函数,并且这是可行的,因为文件是一起编译的。

关于c - 在C语言中,如何使用非当前文件的静态功能? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43997287/

10-09 18:30